目次 前 次 PDF


Oracle Tuxedo Javaサーバー構成

Oracle Tuxedo Javaサーバー構成
ここでは、以下の内容について説明します。
概要
ATMI JavaサーバーのTMJAVASVRは、TuxedoシステムとJava実装サービス間のブリッジとして機能する新しいOracle Tuxedoシステム・サーバーです。Tuxedo Javaサーバーは主に次のタスクを実行します。
Tuxedo Javaサーバー構成ファイルの読取り
構成ファイルに従いJavaコードに実装されるサービスの通知
JVMの起動
Java worldへのリクエストの転送
Java実装サービスからの結果の取得および実行
Java worldへの結果の返し
JVMライブラリ環境の設定
TMJAVASVRサーバーは、JREパッケージ内のlibjvm.so (Unix)またはjvm.dll (Windows)に依存します。
TMJAVASVRを実行する前に、libjvm.so (Unix)またはjvm.dll (Windows)がプラットフォームのライブラリ・ローディング・パス内に格納されていることを確認する必要があります。
Unixの場合、LD_LIBRARY_PATHまたはSHLIB_PATH (HP-UXのみ)またはLIBPATH (AIXのみ)を適宜設定します。
使用しているプラットフォームに応じて次のいずれかを実行します。
Oracle Enterprise Linux (64ビット版)およびJava SEの場合、$JRE_HOME/lib/amd64/server$LD_LIBRARY_PATHに含まれていることを確認します。
Oracle Enterprise Linux (64版)およびOracle JRockit JVMの場合、$JRE_HOME/lib/amd64/jrockitおよび$JRE_HOME/lib/amd64$LD_LIBRARY_PATHに含まれていることを確認します。
AIX PPC64の場合、$JRE_HOME/lib/ppc64/classicおよび$JRE_HOME/lib/ppc64の両方を$LIBPATHに含めることをお薦めします。
Solaris sparc 64ビット版の場合、$JRE_HOME/lib/sparcv9/server$LD_LIBRARY_PATHに含まれていることを確認します。
Solaris x64の場合、$JRE_HOME/lib/amd64/server$LD_LIBRARY_PATHに含まれていることを確認します。
Windowsの場合、%JRE_HOME%\bin\serverPATH環境変数に含まれていることを確認します。
注意:
$JRE_HOMEはJREホーム・ディレクトリを指定します。設定については、$TUXDIR/tux.envも参照できます。
UBBCONFIGにおける構成
UBBCONFIGで次の構成を行う必要があります。
Tuxedo JavaサーバーがTMJAVASVR CLOPTのJava実装サービスの構成ファイルを探すパスを構成します。詳細は、TMJAVASVR(5)を参照してください
Javaサーバーに対してMINDISPATCHTHREADSおよびMAXDISPATCHTHREADSを指定して、その実行モード(マルチスレッド・モードまたはシングルスレッド・モード)を決定します。
MINDISPATCHTHREADSMAXDISPATCHTHREADSも指定しない場合、またはMAXDISPATCHTHREADSを1に指定した場合、Javaサーバーはシングルスレッド・モードで実行され、それ以外の場合、Javaサーバーはマルチスレッド・モードで実行されます。
リスト1-1に例を示します。
リスト1-1 UBBCONFIGにおけるTMJAVASVR構成の例
*SERVERS
TMJAVASVR SRVGRP=TJSVRGRP SRVID=3
CLOPT="-- -c /home/oracle/app/javaserver/TJSconfig.xml"
MINDISPATCHTHREADS=2 MAXDISPATCHTHREADS=3
 
Tuxedo Javaサーバー構成ファイル
Tuxedo Javaサーバー構成ファイルは、JVMでJava実装サービスの実行に必要なパラメータを定義するXMLファイルです。
2.1、2.0および1.0という3つのOracle Tuxedo Javaサーバー構成ファイル・バージョンがあります(対応するスキーマ・ファイルは、TJSconfig_2.1.xsdTJSconfig_2.0.xsdおよびTJSconfig_1.0.xsdです)。 すべてが$TUXDIR/udataobj/tuxj (UNIX)または%TUXDIR%\udataobj\tuxj (Windows)ディレクトリにインストールされます。
バージョン2.1では、タグ識別子server-moduleを持つ要素が導入されています(以前のtux-server-config要素と似ています)。server-module要素は、複数のclasspathsおよびserver-class子要素を持つことができます。これらの子要素は、管理しやすい個別のサーバー・モジュールにバンドルされています。また、バージョン2.1構成ファイルでは、いくつかの新しい属性も追加されています。
version属性が指定されると、Javaサーバーは最新の組込みバージョン表を検索し、version値がJavaサーバーでサポートされているかどうかを検証します。検証が失敗した場合、Javaサーバーは初期化を停止し、終了します。バージョンが有効な場合、Javaサーバーはその後の構成ファイル検証のために対応するスキーマ・ファイルをロードします。
注意:
すべてのバージョンがサポートされていますが、バージョン2.1を使用することをお薦めします(TJSconfigversion属性を2.1に指定します)。version属性が設定されない場合、Javaサーバーはデフォルトで構成ファイルをバージョン1.0として処理します。
Tuxedo Javaサーバー構成ファイル、バージョン2.1
バージョン2.1構成ファイルの要素
Tuxedo Javaサーバー構成ファイルには、次の要素があります。
ルート要素
主要要素
TJSconfig
Tuxedo Javaサーバー構成ファイルのルート要素です。Javaサーバーは最初にプリフェッチ処理を実行して、TJSconfigが現在の構成ファイルに存在するかどうかを確認します。TJSconfigが見つからない場合、Javaサーバーはログにエラーを記録して終了します。表1-1は、TJSconfigのすべての属性を示しています。
 
表1‑1 TJSconfig属性
名前
タイプ
範囲
説明
version
列挙
2.1
オプション。指定されない場合、Javaサーバーは構成ファイルをバージョン1.0の構成ファイルとして処理します。
java-config
java-configは、JavaサーバーがJVMを作成するときに、Javaサーバーによって読み取られ、JVMに渡されるJVMオプションを指定します。これらのオプションは、JVMを調整したり、追加のプロパティをJVMに渡すために使用されます。この要素を使用すると、ユーザーはGCポリシー、スタック・サイズ、ヒープ・サイズなどの観点からJVMの動作を制御できます。表1-2は、java-configのすべてのネスト要素を示しています。
 
表1-2 java-configのネスト要素
名前
タイプ
範囲
説明
jvm-options
String
1..255
JavaサーバーがJVMを作成するときに、Javaサーバーによって読み取られ、JVMに渡されるJVMオプションを指定します。
1つのjvm-optionsでは、複数のJVMオプションを指定できます。各オプションは空白で区切る必要があります。
注意:
Javaサーバーは、指定されたJVMオプションを検証せずに、これらのオプションを使用して標準のJNI JVM初期化データ構造体を作成し、それをJVMに渡して処理するのみです。ただし、-Xmsおよび-Xmxという2つのオプションをユーザーが指定しない場合、Oracle Tuxedo Javaサーバーは、その組込み値を、IBM PowerPC上のIBM AIX 6.1 (32ビット)の場合は256mおよび256mに置換し、Exalogic 2.0上のOracle Linux 5.6 (64ビット)の場合は256mおよび512mに置換します。
tux-config
tux-configは、Tuxedoアプリケーションに関連する属性を指定します。表1-3は、tux-configのすべてのネスト要素を示しています。
 
表1-3 tux-configのネスト要素
名前
タイプ
範囲
説明
server-clopt
String
1..255
Javaサーバー・クラスで実装されているメソッドtpsvrinit(String [])およびtpsvrthrinit(String[])に対して、いくつかの起動オプションを指定します。具体的には、ユーザーのJavaサーバー・クラスでこの2つのメソッドの少なくとも1つが実装されている場合、Javaサーバーはこれらのオプションを読み取り、文字列配列を作成し、実装されているメソッドにその文字列配列を渡します。
<server-propopt>
String
1..255
KVペアを指定します。アプリケーションは、getTuxConfigProperty(K)インタフェースを使用してペアを取得できます。
1つのserver-cloptでは、複数のオプションを指定できます。各オプションは空白で区切る必要があります。
classpath-config
classpath-configは、ユーザー定義クラスを検索するときに使用するパッケージを指定します。バージョン1.0のClassPathsとは異なり、バージョン2.0のclasspath文字列は、環境変数で外部的に定義される変数、またはjvm-options-Dオプションで指定されるJVMオプション文字列で指定できます。次に例を示します。
<classpath>${USER_JAVA_LIB}/lib1</classpath>
このクラス・パスを追加すると、Javaサーバーは最初にjvm-optionsリストを検索して、-DUSER_JAVA_LIB=…がすでに指定されているかどうかを探します。見つかった場合、JavaサーバーはUSER_JAVA_LIB-DUSER_JAVA_LIB=で指定される値に置換し、クラス・パス検索リストに結果を渡します。見つからなかった場合、Javaサーバーは環境変数USER_JAVA_LIBが指定されているかどうかを探し、クラス・パス検索リストに結果を渡します。-DUSER_JAVA_LIB=…も環境変数USER_JAVA_LIBも見つからなかった場合、Javaサーバーは指定されていないクラス・パスをスキップし、ULOGにエラーを記録します。
注意:
Javaサーバーは、クラス・パスの指定で変数を使用するために、次の3つのモードをサポートしています。
${RELATIVE_PATH_VAR}
$(RELATIVE_PATH_VAR)
%RELATIVE_PATH_VAR% (Windowsのみ)
表1-4は、classpath-configのすべてのネスト要素を示しています。
 
表1-4 classpath-configのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
Javaサーバーがクラスの検索およびロードで使用するクラス・パス情報を指定します。
1つのclasspathでは、複数のクラス・パスを指定できます。各クラス・パスはシステムのパス・セパレータ(Windowsプラットフォームの場合は「;」、Unix系プラットフォームの場合は「:」)で区切る必要があります。
また、Javaサーバーのワイルドカード・モードが強化されて、すべてのサブディレクトリを再帰的に検索して一致する結果を見つけることができるようになりました。
tux-resources
tux-resourcesは、view/view32およびfml/fml32型付きバッファ・クラスを指定して、バッファ・リソース・オブジェクトをインスタンス化します。表1-5は、tux-resourcesのすべてのネスト要素を示しています。
 
表1-5 tux-resourcesのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
オプション。Tuxedoの型付きバッファ・クラスのクラス・パスを指定します。
注意:
ユーザーは、classpath-config要素でTuxedoの型付きバッファ・クラスのクラス・パスを指定することもできます。
fld-tbl16-class
String
1..127
FML型付きバッファのクラス名リストです。
fld-tbl32-class
String
1..127
FML32型付きバッファのクラス名リストです。
view16-class
String
1..127
VIEW型付きバッファのクラス名リストです。
view32-class
String
1..127
VIEW32型付きバッファのクラス名リストです。
1つの要素に複数のFML/FML32/VIEW/VIEW32クラスを指定できます。各クラスはカンマで区切る必要があります。
jatmi型付きバッファの詳細は、『Oracle WebLogic Server Oracle WebLogic Tuxedo Connectorアプリケーションの開発』を参照してください。
ユーザーは、viewj/viewj32コンパイラおよびmkfldclass/mkfldclass32ユーティリティを直接使用して、対応するVIEW/VIEW32クラスおよびFML/FML32クラスを生成できます。これらのコンパイラまたはユーティリティを実行する前に、$TUXDIR/udataobj/tuxj/com.bea.core.jatmi_12.2.2.0.jarが含まれるクラス・パスを指定します。
jdbc-resources
jdbc-resourcesは、JDBC互換データ・ソース・パラメータを指定します。表1-6は、jdbc-resourcesのすべてのネスト要素を示しています。
 
表1-6 jdbc-resourcesのネスト要素
名前
説明
data-source
データベース接続を作成するためのJDBCデータ・ソースのエントリが含まれます。
表1-7および表1-8は、data-sourceのすべての属性およびネスト要素を示しています。
 
表1-7 data-sourceの属性
名前
タイプ
範囲
説明
vendor
String
1..31
必須。
ドライバのベンダー名を指定します。
driver-type
String
1..31
必須。
ドライバ・タイプを指定します。
enabled
ブール
true/false
オプション。デフォルト値はtrueです。
データ・ソースが有効かどうかを指定します。
 
表1-8 data-sourceのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
オプション。
データ・ソースのドライバ・パッケージ・パスを指定します。classpath-config要素でドライバ・クラス・パスを指定することもできます。
datasource-classname
String
1..255
必須。
JDBCドライバ・クラス名を指定します。
driver-params
データベース接続の作成に使用されるJDBCドライバのエントリが含まれます。
表1-9は、driver-paramsのすべてのネスト要素を示しています。
 
表1-9 driver-paramsのネスト要素
名前
タイプ
範囲
説明
connection-url
String
1..10239
データ・ソースの接続URLを指定します。
tux-server-config
表1-10tux-server-configは、Javaサーバー・クラス属性を指定します。
 
表1-10 tux-server-configの属性
名前
タイプ
範囲
説明
maxmodules
short
1..1024
Javaサーバーでのサーバー・モジュールの最大数。
オプション。デフォルト値は256です
tux-server-configには、ネスト要素sever-moduleが含まれます。
 
表1-11は、tux-server-config/server-moduleのすべての属性を示しています。
 
表1-11 tux-server-config/server-moduleの属性
プロパティ
タイプ
範囲
説明
name
string
1..63
サーバー・モジュール要素の名前。
必須。
サーバー・モジュール名は、<tux-server-config>要素セクション内のすべてのサーバー・モジュール名の中で一意である必要があり、アスタリスク(*)、カンマ(,)またはコロン(:)は使用できません。
maxsvrclasses
short
1..8192
サーバー・モジュールでのJavaサーバー・クラスの最大数。
オプション。デフォルト値は256です。
maxadmclasses
short
1..4096
サーバー・モジュールでの/Adminコマンド・クラスの最大数。
これはオプションです。デフォルト値は128です。
maxadmcmds
short
1..4096
Javaサーバーでの/Adminコマンドの最大数。
これはオプションです。デフォルト値は128です
表1-12は、tux-server-config/server-moduleのすべてのネスト要素を示しています。
 
表1-12 tux-server-config/server-moduleのネスト要素
プロパティ
タイプ
範囲
説明
<classpath>
string
1..511
オプション。サーバー・クラスのクラス・パスを指定します。classpath-configセクションでクラス・パスを指定することもできます。
<server-clopt>
string
1..255
引数パラメータを指定してtpsvrinit()に渡します。
<server-propopt>
String
1..255
KVペアを指定します。アプリケーションは、getTuxConfigProperty(K)インタフェースを使用してペアを取得できます。
<server-class>
servicesというネスト要素が含まれます。
 
tux-server-config/server-module/server-classの属性を表1-13に示します。
 
表1-13 tux-server-config/server-module/server-classの属性
プロパティ
タイプ
範囲
説明
name
String
1..255
サーバー・クラス名を指定します。
autoadv
ブール
yesまたはno
構成ファイルで明示的に指定されていない場合に、Javaサーバーがサービス・メソッドをメソッド名と同じ名前のTuxedoサービスとして通知できるようにします。
オプション。以前のリリースとの互換性を維持するために、デフォルト値はyesです。
server-classには、servicesというネスト要素もあります。servicesには、serviceというネスト要素があります。
表1-14は、tux-server-config/server-module/server-class/services/serviceのすべての属性を示しています。
 
表1-14 serviceの属性
名前
タイプ
範囲
説明
name
String
1..127
必須。
Tuxedoアプリケーション・ドメインに通知されるサービス名を指定します。
target
String
1..255
サーバー・クラスに実装されるメソッドを指定します。メソッドは、TPSVCINFOパラメータおよびvoidタイプの戻り値で宣言する必要があります。
サービスの通知
サービスを実行する各Tuxedo Javaサーバー・クラスは、一連のメソッドを実行する必要があります。ここで、入力引数パラメータはTPSVCINFOインタフェースです。サービスとして通知されるメソッドは、パブリック・メソッドで、戻し型をvoidに設定する必要があります。
Tuxedo Javaサーバーは、すべてのパブリック・メソッドをサービスとして掲示板に通知します。Servicesが構成ファイルで指定されている場合、Tuxedo Javaサーバーは名前プロパティの値をサービス名として使用します。それ以外の場合は、メソッド名がサービス名として使用されます。
Javaサーバーには、Tuxedoサービスを通知する3つの方法があります。
1.
構成ファイル<tux-server-config>/<server-module>/<server-class>/<services>/<service>:nameで指定された名前でTuxedoサービスを通知し、このTuxedoサービスを<tux-server-config>/<server-module>/<server-class>/<services>/<service>:targetで指定されたJavaメソッドに関連付けます。
リスト1-2 構成ファイルで指定されたTuxedoサービスの通知
<TJSconfig version="2.1">
...
<tux-server-config maxmodules="100" maxadmcmds="100">
<server-module name="MyAppModule_1">
<server-class name="MyTuxedoServerClass">
<services>
<service name="svc1" target="method1"></service>
...
</services>
</server-class>
</server-module>
</tux-server-config>
</TJSconfig>
 
このサンプルでは、JavaクラスMyTuxedoServerClassに実装されたJava method1は、Tuxedoサービスsvc1に関連付けられます。正確なサービス処理ロジックは、Java言語で記述されたMyTuxedoServerClass.method1に実装されています。
2.
構成ファイルで指定されたJavaサーバー・クラスに実装されたJavaサービス・メソッドが示されず、Javaサーバー・クラスのautoadv属性が設定されていない(以前のリリースとの互換性を維持するためにデフォルト値はyes)か明示的にyesに設定されている場合、サービス・メソッドはサービス・メソッドと同じ名前のTuxedoサービスに通知されます。
autoadvの属性値がnoに設定されている場合、このJavaサーバー・クラスに実装されている残りのサービス・メソッドは自動的には通知されません。
3.
TuxAppContext.tpadvertise()を呼び出してTuxedoサービスを通知します。この方法を使用すると、Javaサーバー・アプリケーションは構成ファイルでJavaサーバー・クラスを明示的に指定する必要はなく、サーバー・クラスは抽象クラスcom.oracle.tuxedo.tjatmi.TuxedoJavaServerから継承されません。
バージョン2.1構成ファイルの例
バージョン2.1では、Javaサーバー・アプリケーションを詳細に管理する方法を提供するために、以前のアプリケーションをより多くのモジュールに分離するために使用されるモジュール・エンティティが導入されています。いくつかの新しい属性も構成ファイルに追加されています。
リスト1-3 構成ファイル・バージョン2.1の例
<TJSconfig version="2.1">
<java-config>
<jvm-options>-XX:MaxPermSize=192m -Xms256m </jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-Xmx512m</jvm-options>
</java-config>
 
<tux-config>
<server-clopt>-C dom=TMJSVRDOM -t 1000</server-clopt>
<server-clopt>-n 200</server-clopt>
<server-propopt> TUXCNF_propK1=propV1 </server-propopt>
<server-propopt> TUXCNF_propK2=propV2 TUXCNF_propK3=propV3 </server-propopt>
</tux-config>
 
<classpath-config>
<classpath>${APPDIR}/classes</classpath>
<classpath>$USERCLASS/usr/libs/lib1.jar</classpath>
<classpath>$USERCLASS/usrlib2/*</classpath>
<classpath>$USERCLASS/usrlib3/*.jar</classpath>
</classpath-config>
 
<tux-resources>
<classpath>$(APPDIR)/tuxres</classpath>
<classpath>${APPDIR}/testres</classpath>
<fld-tbl16-class>test1.FML16TBL, test2.FML16TBL</fld-tbl16-class>
<fld-tbl16-class>test3.FML16TBL</fld-tbl16-class>
<fld-tbl16-class>test4.FML16TBL</fld-tbl16-class>
<fld-tbl32-class>test1.FML32TBL</fld-tbl32-class>
<fld-tbl32-class>test2.FML32TBL, test3.FML32TBL</fld-tbl32-class>
<fld-tbl32-class>test4.FML32TBL</fld-tbl32-class>
<view16-class>test1.VIEW16, test2.VIEW16</view16-class>
<view16-class>test3.VIEW16</view16-class>
<view16-class>test4.VIEW16</view16-class>
<view32-class>test1.VIEW32</view32-class>
<view32-class>test2.VIEW32,test3.VIEW32</view32-class>
<view32-class>test4.VIEW32</view32-class>
</tux-resources>
 
<jdbc-resources>
<data-source vendor="Oracle" driver-type="thin" enabled="true"
object-type="usr" jndi-name="none" pool-name="none">
<classpath>$(JDBC_DRIVER_ORA)/11gR2_ojdbc6_g.jar</classpath>
<classpath>$(JDBC_DRIVER_ORA)/11gR2_xdb6.jar</classpath>
<classpath>$(JDBC_DRIVER_ORA)/11gR2_orai18n.jar</classpath>
<datasource-classname>oracle.jdbc.xa.client.OracleXADataSource</datasource-classname>
<res-type>javax.sql.XADataSource</res-type>
<driver-params>
<connection-url>
jdbc:oracle:thin:@//10.182.54.144:1521/javaorcl
</connection-url>
<property name="user" value="tiger"/>
<property name="password" value="scott"/>
<property name="autocommit" value="true"/>
<property name="autotran" value="yes"/>
<property name="query" value=" "/>
<property name="thread" value="true"/>
</driver-params>
</data-source>
</jdbc-resources>
 
<jdbc-connection-pool>
</jdbc-connection-pool>
 
<tux-server-config maxmodules="100">
<server-module name="MyAppModule_1" maxsvrclasses="100" maxadmclasses="64" maxadmcmds="200">
<classpath>${APPDIR}/Java/module_1/classes</classpath>
<classpath>${APPDIR}/Java/module_1/lib</classpath>
<server-clopt>-C dom=TMJSVRDOM1 -g TJSSVRGRP1 -t 2000</server-clopt>
<server-clopt>-f application1.xml </server-clopt>
<server-propopt> K1=V1 K2=V2 </server-propopt>
<server-propopt> k3=v3 k4=v4</server-propopt>
<server-class name="MyTuxedoServerClass" autoadv="no">
<services>
<service name="mou1_svc1" target="method1"></service>
<service name="mou1_svc2" target="method2"></service>
</services>
</server-class>
<server-class name="MyTuxedoServerClass2" autoadv="yes">
<services>
<service name="mou1_svc3" target="JAVASTRINGSVC"></service>
<service name="mou1_svc4" target="JAVAFML32SVC"></service>
</services>
</server-class>
</server-module>
<server-module name="MyAppModule_2" maxsvrclasses="200" maxadmcmds="20">
<classpath>${APPDIR}/Java/module_2/classes</classpath>
<classpath>${APPDIR}/Java/module_2/lib</classpath>
<server-clopt>-C dom=TMJSVRDOM2 -g TJSSVRGRP2 -t 1000</server-clopt>
<server-clopt>-f application2.xml </server-clopt>
<server-propopt> Kmou1=Vmou1 Kmou2=Vmou2 </server-propopt>
<server-propopt> kmou3=vmou3 kmou4=vmou4</server-propopt>
<server-class name="MyTuxedoServerClass">
<services>
<service name="mou2_svc1" target="method1"></service>
<service name="mou2_svc2" target="method2"></service>
</services>
</server-class>
<server-class name="MyTuxedoServerClass2" autoadv="yes">
<services>
<service name="mou2_svc3" target="JAVASTRINGSVC"></service>
<service name="mou2_svc4" target="JAVAFML32SVC"></service>
</services>
</server-class>
</server-module>
</tux-server-config>
</TJSconfig>
 
Javaサービスのマッピング
Javaサーバーは、アプリケーション・サーバー・クラスに実装されているすべてのサービス・メソッドを取得し、次の規則でサービスを通知します。
1つのメソッドを異なるサービス名で複数回通知できます。
構成ファイルに指定されているメソッドは、指定されたサービス名で通知されます。
構成ファイルに指定されていないメソッドでは、メソッド名がサービス名として通知されます。
構成ファイルに指定されているサービス名で通知されたメソッドが、同じメソッド名でさらに通知されることはありません。
サーバー・クラス内でpublicと宣言されたメソッドのみがJavaサーバーによって取得されて、通知アクションに関与します。
Tuxedo Javaサーバー構成ファイル、バージョン2.0
バージョン2.0構成ファイルの要素
Tuxedo Javaサーバー構成ファイルには、次の要素があります。
ルート要素
主要要素
TJSconfig
Tuxedo Javaサーバー構成ファイルのルート要素です。Javaサーバーは最初にプリフェッチ処理を実行して、TJSconfigが現在の構成ファイルに存在するかどうかを確認します。TJSconfigが見つからない場合、Javaサーバーはログにエラーを記録して終了します。表1-15は、TJSconfigのすべての属性を示しています。
 
表1‑15 TJSconfig属性
名前
タイプ
範囲
説明
version
列挙
2.0
これはオプションです。指定されない場合、Javaサーバーは構成ファイルをバージョン1.0の構成ファイルとして処理します。
java-config
java-configは、JavaサーバーがJVMを作成するときに、Javaサーバーによって読み取られ、JVMに渡されるJVMオプションを指定します。これらのオプションは、JVMを調整したり、追加のプロパティをJVMに渡すために使用されます。この要素を使用すると、ユーザーはGCポリシー、スタック・サイズ、ヒープ・サイズなどの観点からJVMの動作を制御できます。表1-16は、java-configのすべてのネスト要素を示しています。
 
表1-16 java-configのネスト要素
名前
タイプ
範囲
説明
jvm-options
String
1..255
JavaサーバーがJVMを作成するときに、Javaサーバーによって読み取られ、JVMに渡されるJVMオプションを指定します。
1つのjvm-optionsでは、複数のJVMオプションを指定できます。各オプションは空白で区切る必要があります。
注意:
Javaサーバーは、指定されたJVMオプションを検証せずに、これらのオプションを使用して標準のJNI JVM初期化データ構造体を作成し、それをJVMに渡して処理するのみです。ただし、-Xmsおよび-Xmxという2つのオプションをユーザーが指定しない場合、Oracle Tuxedo Javaサーバーは、その組込み値を、IBM PowerPC上のIBM AIX 6.1 (32ビット)の場合は256mおよび256mに置換し、Exalogic 2.0上のOracle Linux 5.6 (64ビット)の場合は256mおよび512mに置換します。
tux-config
tux-configは、Tuxedoアプリケーションに関連する属性を指定します。表1-17は、tux-configのすべてのネスト要素を示しています。
 
表1-17 tux-configのネスト要素
名前
タイプ
範囲
説明
server-clopt
String
1..255
Javaサーバー・クラスで実装されているメソッドtpsvrinit(String [])およびtpsvrthrinit(String[])に対して、いくつかの起動オプションを指定します。具体的には、ユーザーのJavaサーバー・クラスでこの2つのメソッドの少なくとも1つが実装されている場合、Javaサーバーはこれらのオプションを読み取り、文字列配列を作成し、実装されているメソッドにその文字列配列を渡します。
1つのserver-cloptでは、複数のオプションを指定できます。各オプションは空白で区切る必要があります。
classpath-config
classpath-configは、ユーザー定義クラスを検索するときに使用するパッケージを指定します。バージョン1.0のClassPathsとは異なり、バージョン2.0のclasspath文字列は、環境変数で外部的に定義される変数、またはjvm-options-Dオプションで指定されるJVMオプション文字列で指定できます。次に例を示します。
<classpath>${USER_JAVA_LIB}/lib1</classpath>
このクラス・パスを追加すると、Javaサーバーは最初にjvm-optionsリストを検索して、-DUSER_JAVA_LIB=…がすでに指定されているかどうかを探します。見つかった場合、JavaサーバーはUSER_JAVA_LIB-DUSER_JAVA_LIB=で指定される値に置換し、クラス・パス検索リストに結果を渡します。見つからなかった場合、Javaサーバーは環境変数USER_JAVA_LIBが指定されているかどうかを探し、クラス・パス検索リストに結果を渡します。-DUSER_JAVA_LIB=…も環境変数USER_JAVA_LIBも見つからなかった場合、Javaサーバーは指定されていないクラス・パスをスキップし、ULOGにエラーを記録します。
注意:
Javaサーバーは、クラス・パスの指定で変数を使用するために、次の3つのモードをサポートしています。
${RELATIVE_PATH_VAR}
$(RELATIVE_PATH_VAR)
%RELATIVE_PATH_VAR% (Windowsのみ)
表1-18は、classpath-configのすべてのネスト要素を示しています。
 
表1-18 classpath-configのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
Javaサーバーがクラスの検索およびロードで使用するクラス・パス情報を指定します。
1つのclasspathでは、複数のクラス・パスを指定できます。各クラス・パスはシステムのパス・セパレータ(Windowsプラットフォームの場合は「;」、Unix系プラットフォームの場合は「:」)で区切る必要があります。
また、Javaサーバーのワイルドカード・モードが強化されて、すべてのサブディレクトリを再帰的に検索して一致する結果を見つけることができるようになりました。
tux-resources
tux-resourcesは、view/view32およびfml/fml32型付きバッファ・クラスを指定して、バッファ・リソース・オブジェクトをインスタンス化します。表1-19は、tux-resourcesのすべてのネスト要素を示しています。
 
表1-19 tux-resourcesのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
これはオプションです。Tuxedoの型付きバッファ・クラスのクラス・パスを指定します。
注意:
ユーザーは、classpath-config要素でTuxedoの型付きバッファ・クラスのクラス・パスを指定することもできます。
fld-tbl16-class
String
1..127
FML型付きバッファのクラス名リストです。
fld-tbl32-class
String
1..127
FML32型付きバッファのクラス名リストです。
view16-class
String
1..127
VIEW型付きバッファのクラス名リストです。
view32-class
String
1..127
VIEW32型付きバッファのクラス名リストです。
1つの要素に複数のFML/FML32/VIEW/VIEW32クラスを指定できます。各クラスはカンマで区切る必要があります。
jatmi型付きバッファの詳細は、『Oracle WebLogic Server Oracle WebLogic Tuxedo Connectorアプリケーションの開発』を参照してください。
ユーザーは、viewj/viewj32コンパイラおよびmkfldclass/mkfldclass32ユーティリティを直接使用して、対応するVIEW/VIEW32クラスおよびFML/FML32クラスを生成できます。これらのコンパイラまたはユーティリティを実行する前に、$TUXDIR/udataobj/tuxj/com.bea.core.jatmi_2.0.0.0.jarが含まれるクラス・パスを指定してください。
jdbc-resources
jdbc-resourcesは、JDBC互換データ・ソース・パラメータを指定します。表1-20は、jdbc-resourcesのすべてのネスト要素を示しています。
 
表1-20 jdbc-resourcesのネスト要素
名前
説明
data-source
データベース接続を作成するためのJDBCデータ・ソースのエントリが含まれます。
表1-21および表1-22は、data-sourceのすべての属性およびネスト要素を示しています。
 
表1-21 data-sourceの属性
名前
タイプ
範囲
説明
vendor
String
1..31
これは必須です。
ドライバのベンダー名を指定します。
driver-type
String
1..31
これは必須です。
ドライバ・タイプを指定します。
enabled
ブール
true/false
これはオプションです。デフォルト値はtrueです。
データ・ソースが有効かどうかを指定します。
 
表1-22 data-sourceのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
これはオプションです。
データ・ソースのドライバ・パッケージ・パスを指定します。classpath-config要素でドライバ・クラス・パスを指定することもできます。
datasource-classname
String
1..255
これは必須です。
JDBCドライバ・クラス名を指定します。
driver-params
データベース接続の作成に使用されるJDBCドライバのエントリが含まれます。
表1-23は、driver-paramsのすべてのネスト要素を示しています。
 
表1-23 driver-paramsのネスト要素
名前
タイプ
範囲
説明
connection-url
String
1..511
データ・ソースの接続URLを指定します。
tux-server-config
tux-server-configは、Javaサーバー・クラス・パラメータを指定します。表1-24は、tux-server-configのすべてのネスト要素を示しています。
 
表1-24 tux-server-configのネスト要素
名前
タイプ
範囲
説明
classpath
String
1..511
これはオプションです。サーバー・クラスのクラス・パスを指定します。classpath-configセクションでクラス・パスを指定することもできます。
server-class
Javaサーバー・クラスのエントリが含まれます。ユーザーはサーバー・クラス名を指定する必要があり、メソッドのサービス別名を指定できます。
表1-25は、server-classのすべての属性を示しています。
 
表1-25 server-classの属性
名前
タイプ
範囲
説明
name
String
1..255
サーバー・クラス名を指定します。
server-classには、servicesというネスト要素もあります。servicesには、serviceというネスト要素があります。表1-26は、serviceのすべての属性を示しています。
 
表1-26 serviceの属性
名前
タイプ
範囲
説明
name
String
1..127
これは必須です。
Tuxedoアプリケーション・ドメインに通知されるサービス名を指定します。
target
String
1..255
サーバー・クラスに実装されるメソッドを指定します。メソッドは、TPSVCINFOパラメータおよびvoidタイプの戻り値で宣言する必要があります。
バージョン2.0構成ファイルの例
リスト1-4に、Tuxedo Javaサーバー構成ファイルを作成する例を示します。
リスト1-4 Tuxedo Javaサーバー構成ファイルの作成例
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-XX:MaxPermSize=192m</jvm-options>
<jvm-options>-server</jvm-options>
<jvm-options>-DMYVAR="var01" -DMYVAR02="var02"</jvm-options>
</java-config>
<tux-config>
<server-clopt>-C dom=TMJSVRDOM -t 1000</server-clopt>
<server-clopt>-n 200</server-clopt>
</tux-config>
<classpath-config>
<classpath>${USER_JAVA_LIB}/lib1</classpath>
</classpath-config>
<tux-resources>
<fld-tbl16-class>myfmltbl</fld-tbl16-class>
<fld-tbl32-class>myfmltbl32,customerflds32</fld-tbl32-class>
<view16-class>myView</view16-class>
<view32-class>myView32,customerView32</view32-class>
</tux-resources>
<jdbc-resources>
<data-source vendor="Oracle" driver-type="thin" enabled="true">
<datasource-classname>oracle.jdbc.xa.client.OracleXADataSource</datasource-classname>
<driver-params>
<connection-url>
jdbc:oracle:thin:@//Server:1521/orcl
</connection-url>
</driver-params>
</data-source>
</jdbc-resources>
<tux-server-config>
<classpath>$TUXJRE/jce.jar</classpath>
<server-class name="MyTuxedoJavaServer">
<services>
<service name="JAVATOUPPER" target="JAVATOUPPER"></service>
<service name="JAVATOUPPERFORWARD" target="JAVATOUPPERFORWARD"></service>
</services>
</server-class>
</tux-server-config>
</TJSconfig>
 
Javaサービスのマッピング
Javaサーバーは、アプリケーション・サーバー・クラスに実装されているすべてのサービス・メソッドを取得し、次の規則でサービスを通知します。
1つのメソッドを異なるサービス名で複数回通知できます。
構成ファイルに指定されているメソッドは、指定されたサービス名で通知されます。
構成ファイルに指定されていないメソッドでは、メソッド名がサービス名として通知されます。
構成ファイルに指定されているサービス名で通知されたメソッドが、同じメソッド名でさらに通知されることはありません。
サーバー・クラス内でpublicと宣言されたメソッドのみがJavaサーバーによって取得されて、通知アクションに関与します。
Tuxedo Javaサーバー構成ファイル、バージョン1.0
Tuxedo Javaサーバー構成ファイルのプロパティ
表1-27は、Javaサーバー構成ファイルで使用可能なプロパティを示しています。対応する「Javaサーバー構成スキーマ・ファイル」を参照してください。このファイルでは、より詳細な情報に基づいて構成XMLファイルの検証チェックが行われます。
 
表1-27 Tuxedo Javaサーバー構成ファイルのプロパティ
プロパティ名
タイプ
範囲
説明
ClassPath
String
Length:0..1024
構成済のクラス・メソッドの実行に使用されるパッケージを指定します。
DriverClass
String
Length:1..512
JDBC DataSourceクラス名を指定します。
ConnectionUrl
String
Length:1..512
JDBC接続URL文字列(対応するJDBCドライバに必要な形式に従う必要がある)を指定します。ユーザー名およびパスワードを含めないでください。
name (For TuxedoServerClass)
String
Length:1..512
Tuxedo Javaサーバー・クラス名を指定します。
構成で必須です。
name(For Service)
String
Length:1..127
メソッドに関連する掲示板で通知されるサービス名を指定します。構成ファイルでは、各「svcname」属性値は一意である必要があります。このプロパティを指定しない場合、メソッド名はサービス名として使用されます。
target
String
Length:1.. 127
対応するサービスのクラス・メソッドを指定します。
fieldTable16Class
String
Length:0..1024
完全修飾FMLクラスのカンマ区切りリスト。FML16フィールド表クラスはすべてここで定義する必要があります。ここで定義しない場合、FMLのFldid()/ Fname()は機能しません。
fieldTable32class
String
Length:0..1024
完全修飾FMLクラスのカンマ区切りリスト。FML32フィールド表クラスはすべてここで定義する必要があります。ここで定義しない場合、FML32のFldid()/ Fname()は機能しません。
viewFile16Class
String
Length:0..1024
完全修飾FMLクラスのカンマ区切りリスト。プログラミングで使用されるすべてのviewクラスはここで定義する必要があります。
viewFile32Class
String
Length:0..1024
完全修飾FMLクラスのカンマ区切りリスト。プログラミングで使用されるすべてのview32クラスはここで定義する必要があります。
クラス・パス要素の設定
次の<ClassPath>要素設定は、Tuxedo Java構成ファイルでサポートされています。
<ClassPath>customer_lib_path/*.jar</ClassPath>または<ClassPath>customer_lib_path/*.zip</ClassPath>
customer_lib_path直下のすべての.jarまたは.zipアーカイブをJVMクラスパスに追加します。
<ClassPath>customer_lib_path</ClassPath>
customer_lib_path直下のすべてのクラスをJVMクラスパスに追加します。
<ClassPath>customer_lib_path/*</ClassPath>
customer_lib_path直下のすべての.jarファイル、.zipファイルおよびクラスをJVMクラスパスに追加します。
<ClassPath>customer_lib_path/lib1.jar</ClassPath>または<ClassPath>customer_lib_path/lib2.zip</ClassPath>
customer_lib_path/lib1.jarまたはcustomer_lib_path/lib2.zipをJVMクラスパスに追加します。
注意:
 
customer_lib_path内のすべてのファイル検索は非再帰です。
$APPDIRへのcustomer_lib_pathは、絶対パスまたは相対パスのいずれかになります。
$APPDIRはデフォルトでクラスパスに追加されます。
FML/Viewフィールド表クラスの設定
View/View32を使用するには、<Resources></Resources>要素でViewクラスを指定する必要があります。Fldid()/Fname()を適切に使用するには、<Resources></Resources>要素でFML/FML32 field tableクラスを指定する必要があります。
構成ルール
Javaサーバー構成ファイルを作成する際には、次のルールに従う必要があります。
Javaサーバー構成ファイルでは<TuxedoServerClasses>のみが必須で、少なくとも1つのTuxedoServerClassを構成する必要があります。
現在、構成ファイルの<DataSources>で構成が許可されているのは、1つの<DataSource>要素のみです。<DataSource>の名前プロパティは現在は有効ではありません。
複数のエンティティを持つことができる要素は、<ClassPath><fieldTable16Class><fieldTable32class><viewFile16Class><viewFile32Class>および<Service>のみです。
<Resources>セクションでは、最初に<fieldTable16Class>を構成し、続いて<fieldTable32class><viewFile16Class><viewFile32Class>の順に構成する必要があります。
注意:
構成ファイル(TJSconfig.xmlなど)は、$TUXDIR/udataobj/tuxj/TJSconfig.xsd (Unix)または$TUXDIR\udataobj\tuxj/TJSconfig.xsd (Windows)に格納されているスキーマ・ファイルTJSconfig.xsdに対してチェックされます。構成ルールに関する詳細は、TJSconfig.xsdを参照することをお薦めします。
サービスの通知
サービスを実行する各Tuxedo Javaサーバー・クラスは、一連のメソッドを実行する必要があります。ここで、入力引数パラメータはTPSVCINFOインタフェースです。サービスとして通知されるメソッドは、パブリック・メソッドで、戻し型をvoidに設定する必要があります。
Tuxedo Javaサーバーは、すべてのパブリック・メソッドをサービスとして掲示板に通知します。Servicesが構成ファイルで指定されている場合、Tuxedo Javaサーバーは名前プロパティの値をサービス名として使用します。それ以外の場合は、メソッド名がサービス名として使用されます。
バージョン1.0構成ファイルの例
リスト1-5に、Tuxedo Javaサーバー構成ファイルの例を示します。
MyTuxedoServerClass1 JavaクラスがJAVASTRINGSVCJAVAFML32SVCsvc3の各メソッドを定義し、MyTuxedoServerClass2 Javaクラスがsvc4メソッドを定義すると仮定すると、この例ではJDBC接続によりOracleデータベースへの接続が開始され、svc1svc2svc3およびsvc4の各サービスがエクスポートされます。
構成ファイルでメソッド名svc3およびsvc4<Service>プロパティが指定されていないため、これらのメソッド名はサービス名としてエクスポートされます。
リスト1-5 Tuxedo Javaサーバーの構成例
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig>
<ClassPaths>
<ClassPath>/home/oracle/app/javaserver/MyTuxedoServerClass.jar</ClassPath>
<ClassPath>/home/oracle/app/oracle/product/11.2.0/dbhome_2/ucp/lib/ucp.jar</ClassPath>
<ClassPath>/home/oracle/app/oracle/product/11.2.0/dbhome_2/jdbc/lib/ojdbc6.jar</ClassPath>
</ClassPaths>
<Resources>
<FieldTable16Classes>test1.FML16TBL, test2.FML16TBL</FieldTable16Classes>
<FieldTable16Classes>test3.FML16TBL, test4.FML16TBL</FieldTable16Classes>
<FieldTable32Classes>test1.FML32TBL1, test2.FML32TBL</FieldTable32Classes>
<FieldTable32Classes>test3.FML32TBL1, test4.FML32TBL</FieldTable32Classes>
<ViewFile16Classes>test1.VIEW16, test2.VIEW16</ViewFile16Classes>
<ViewFile16Classes>test3.VIEW16, test4.VIEW16</ViewFile16Classes>
<ViewFile32Classes>test1.VIEW32, test2.VIEW32</ViewFile32Classes>
<ViewFile32Classes>test3.VIEW32, test4.VIEW32</ViewFile32Classes>
</Resources>
<DataSources>
<DataSource name="oracle">
<DriverClass>oracle.jdbc.xa.client.OracleXADataSource</DriverClass>
<JdbcDriverParams>
<ConnectionUrl>jdbc:oracle:thin:@//10.182.54.144:1521/javaorcl</ConnectionUrl>
</JdbcDriverParams>
</DataSource>
</DataSources>
<TuxedoServerClasses>
<TuxedoServerClass name="MyTuxedoServerClass1">
<Services>
<Service name="svc1" target="JAVASTRINGSVC"></Service>
<Service name="svc2" target="JAVAFML32SVC"></Service>
</Services>
</TuxedoServerClass>
<TuxedoServerClass name="MyTuxedoServerClass2"></TuxedoServerClass>
</TuxedoServerClasses>
</TJSconfig>
 
注意:
 
サービス名は、構成ファイル内の指定したクラス+メソッドへのマッピングに使用されるため、1つのTuxedo Javaサーバーおよびそれに含まれる異なるJavaクラス間で一意である必要があります。
ユーザー定義クラスおよびDataSourceドライバ・ライブラリなどのJavaアプリケーションで使用されるすべてのライブラリ(標準JREライブラリを除く)を提供する必要があります。
Tuxedo Javaサーバー・トランザクション・マネージャの構成
Javaサーバーには、JTA準拠のトランザクション・マネージャを新規作成したり、既存のものを取得するためのgetterメソッドがあります。リスト1-6に、Springアプリケーション・コンテキストの構成ファイルでTuxedoトランザクション・マネージャを構成する方法を示します。
Springアプリケーション・コンテキストの構成ファイルの詳細は、「Springアプリケーション・コンテキストの作成」を参照してください。
リスト1-6 Tuxedoトランザクション・マネージャの構成例
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
 
<bean id="TuxTransactionManager"
class="com.oracle.tuxedo.tjatmi.TuxTransactionManager"
factory-method="getTransactionManager">
</bean>
 
<bean id="springAppTransactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="TuxTransactionManager"/>
<property name="transactionManager" ref="TuxTransactionManager"/>
</bean>
 
</beans>
 
Springアプリケーション・コンテキストの作成
Springアプリケーション・コンテキストを作成、破棄、管理するのはJavaサーバーではなく、Springアプリケーションです。
Spring Frameworkライブラリおよびすべての依存ライブラリは、Javaサーバー構成ファイルで構成する必要があります。リスト1-7に、Javaサーバー構成ファイルでSpring Frameworkライブラリを指定する方法を示します。
Javaサーバー構成ファイルの詳細は、「Tuxedo Javaサーバー構成ファイル」を参照してください。
リスト1-7 Spring Frameworkライブラリの指定例
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-DSPRING_LIB=/home/tuxdev/Spring/3.2.4</jvm-options>
<jvm-options>-DSPRING_DEP=/home/tuxdev/Spring/deps</jvm-options>
</java-config>
<classpath-config>
<classpath>${SPRING_LIB}/*.jar</classpath>
<classpath>${SPRING_DEP}/*.jar</classpath>
</classpath-config>
</TJSconfig>
 
Javaサーバーは起動の段階で、Javaサーバー構成ファイル内の構成情報に従って、Spring Frameworkとすべての依存ライブラリをロードします。Springアプリケーションでは、必要に応じて、Spring Frameworkクラスを直接インポートできます。
トランザクション管理
Tuxedo Javaベース・トランザクションは、既存のTuxedoトランザクション管理フレームワークに基づいて実行されます。これまでと同様に、トランザクション用にUBB構成ファイルで作成する必要がある構成として、特定のグループのトランザクション・マネージャ・サーバー(TMSs)およびリソース・マネージャ(RMs)の属性が定義する必要があります。Tuxedo Javaサーバー(TMJAVASVR)はこのグループに属する必要があります。
リスト1-8 Javaベース・トランザクションのUBB構成
*GROUP
ORASVRGRP LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/system/oracle+SesTm=120+MaxCur=5+LogDir=.+SqlNet=orcl"
TMSNAME=TMSORA TMSCOUNT=2
*SERVERS
TMJAVASVR SRVGRP=ORASVRGRP SRVID=3 CLOPT="-- -c TJSconfig_ORA.xml"
MINDISPATCHTHREADS=2 MAXDISPATCHTHREADS=2
 
詳細は、「トランザクション対応のATMIアプリケーションの構成」を参照してください。
Java実装サービスはJava world内のデータ・ソースに接続する必要があるため、Tuxedo Javaサーバー構成ファイル内のデータ・ソースに接続する方法を定義するパラメータを定義する必要があります。
今回のリリースでは、Java実装サービスが接続できるのはJDBC接続によるデータベースのみであるため、ConnectionUrlプロパティを使用してTuxedo Javaサーバー構成ファイルでJDBCパラメータを指定する必要があります。
Javaサーバーはユーザー名とパスワードをOPENINFOから取得するため、ユーザー名とパスワードをUBB構成ファイル内のOPENINFOに入力する必要があります。これによってパスワードが暗号化され、セキュリティの強さが保証されます。
DataSourceが異なるとConnectionURL形式も異なります。
Oracleデータベースの場合、形式は次のとおりです。
jdbc:oracle:thin:@//hostname:portnumber/servicename
DB2データベースの場合、形式は次のとおりです。
jdbc:db2://hostname:portnumber/DatabaseName
リスト1-9は、Oracleデータベースの構成例です。
リスト1-9 Oracleデータベースの構成例
<DataSources>
<DataSource name="oracle">
<DriverClass>oracle.jdbc.xa.client.OracleXADataSource</DriverClass>
<JdbcDriverParams>
<ConnectionUrl>jdbc:oracle:thin:@//10.182.54.144:1521/javaorcl</ConnectionUrl>
</JdbcDriverParams>
</DataSource>
</DataSources>
 
AUTOTRAN
AUTOTRANも、Tuxedo Javaサーバーが通知するサービスで構成できます。Tuxedo Javaサーバーが*SERVICESセクションで構成されており、かつそのAUTOTRAN属性がYに指定されている場合、サービスによってトランザクションが自動的に開始されます。
サポートされるSpringアプリケーションのトランザクション・モード
Spring Frameworkは、2つのトランザクション管理モードをサポートしています。
プログラム的トランザクション・モード
宣言的トランザクション・モード
宣言的トランザクションでは、EJBの対応するコンテナ管理トランザクション・モードにマップできる、次のような7つのトランザクション伝播モードをサポートできます。
 
表1-28 サポートされるトランザクション伝播モード
伝播定数
説明
PROPAGATION_REQUIRED
現在のトランザクションをサポートします。トランザクションが存在しない場合は、新しいトランザクションを作成します。これは、同じ名前のEJBトランザクション属性に似ています。このモードは、通常、トランザクション定義のデフォルト設定です。
PROPAGATION_SUPPORTS
現在のトランザクションをサポートします。トランザクションが存在しない場合は、トランザクションを伴わずに実行します。これは、同じ名前のEJBトランザクション属性に似ています。
PROPAGATION_MANDATORY
現在のトランザクションをサポートします。トランザクションが存在しない場合は、例外をスローします。これは、同じ名前のEJBトランザクション属性に似ています。
PROPAGATION_REQUIRES_NEW
新しいトランザクションを作成します。トランザクションが存在する場合は、現在のトランザクションを一時停止します。これは、同じ名前のEJBトランザクション属性に似ています。
PROPAGATION_NOT_SUPPORTED
トランザクションを伴わずに実行します。トランザクションが存在する場合は、現在のトランザクションを一時停止します。これは、同じ名前のEJBトランザクション属性に似ています。
PROPAGATION_NEVER
トランザクションを伴わずに実行します。トランザクションが存在する場合は、例外をスローします。これは、同じ名前のEJBトランザクション属性に似ています。
PROPAGATION_NESTED*
現在のトランザクションが存在する場合は、ネストされたトランザクション内で実行します。またはPROPAGATION_REQUIREDのように動作します。
注意:
*宣言的トランザクション管理モードでは、PROPAGATION_NESTED伝播動作がJavaサーバー・トランザクション・マネージャでサポートされていません。
Javaサーバーは、2つの開始トランザクションをサポートしています。
Javaサーバーから開始されるトランザクション。Spring Frameworkによって作成されます。
サービス・リクエスタから開始されるトランザクション。
トランザクション属性のtimeout、rollback-forおよびno-rollback-forがサポートされています。
注意:
Tuxedo JavaサーバーのSpringトランザクション・マネージャを使用して、Oracle Databaseの各操作を非トランザクション型モデルで処理するには、使用するシナリオにトランザクションの開始文/終了文を明示的に追加する必要があります。
Javaサーバー・トランザクション・マネージャのデフォルトのタイムアウト
1つのBeanメソッドにタイムアウト値が指定されている場合、このタイムアウトが新しいトランザクションで使用されます。明示的なトランザクション・タイムアウト値もJavaサーバー・トランザクション・マネージャのタイムアウト値も指定されていない場合は、デフォルトの組込みのタイムアウト値(30)を使用して新しいトランザクションが作成されます。Javaサーバーでは、Javaサーバー構成ファイルでのデフォルトのトランザクション・タイムアウト値の指定がサポートされています。例を示します。
リスト1-10 デフォルトのトランザクション・タイムアウト値の指定例
<?xml version="1.0" encoding="UTF-8"?>
<TJSconfig version="2.0">
<java-config>
<jvm-options>-Dtuxedo.tjatmi.defaultTransactionTimeout=60</jvm-options>
</java-config>
</TJSconfig>
 
制限事項
JDBCドライバを使用したデータベースへの接続のみがサポートされます。DB2の場合、サポートされるのはType 4 JDBCドライバのみです。
Oracle Tuxedo Javaサーバーでは対話機能はサポートされていません。
Oracle Tuxedo JavaサーバーではMSSQはサポートされていません。
<TJSconifg>/<tux-resources>で指定されるすべてのOracle Tuxedoリソースは、Javaサーバー自体によって管理および維持されます。それらは、Javaサーバーにデプロイされているすべてのサーバー・モジュールからアクセスおよび表示可能である必要があります。これらのリソース・クラスはパブリックとしてデプロイされる必要があります。
関連項目
TMJAVASVR(5)
Oracle Tuxedo Javaサーバー管理
付録: Javaサーバー構成ファイルのスキーマ
Javaを使用したOracle Tuxedoアプリケーションのプログラミング

Copyright ©1994, 2017,Oracle and/or its affiliates. All rights reserved