Oracle Tuxedoアプリケーションの設定

     前  次    新規ウィンドウで目次を開く  新規ウィンドウで索引を開く  PDFとして表示 - 新規ウィンドウ  Adobe Readerを取得 - 新規ウィンドウ
コンテンツはここから始まります

ATMI Javaサーバーの管理

このトピックは、以下の項で構成されています。

 


概要

ATMI JavaサーバーのTMJAVASVRは、TuxedoシステムとJava実装サービス間のブリッジとして機能する新しいOracle Tuxedoシステム・サーバーです。マルチスレッド・サーバーとして、Tuxedo Javaサーバーは主に次のタスクを実行します。

 


Tuxedo Javaサーバー構成ファイル

Tuxedo Javaサーバー構成ファイルは、JVMでJava実装サービスの実行に必要なパラメータを定義するXMLファイルです。

表18-1は、Javaサーバー構成ファイルで使用可能なプロパティを示しています。対応する「Javaサーバー構成スキーマ・ファイル」を参照してください。このファイルでは、より詳細な情報に基づいて構成XMLファイルの検証チェックが行われます。

表18-1 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クラスパスに追加します。
注意:

FML/Viewフィールド表クラスの設定

View/View32を使用するには、<Resources></Resources>要素でViewクラスを指定する必要があります。Fldid()/Fname()を適切に使用するには、<Resources></Resources>要素でFML/FML32フィールド・テーブル・クラスを指定する必要があります。

構成ルール

Javaサーバー構成ファイルを作成する際には、次のルールに従う必要があります。

注意: 構成ファイル(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サーバーは名前プロパティの値をサービス名として使用します。それ以外の場合は、メソッド名がサービス名として使用されます。

構成ファイルの例

リスト18-1は、Tuxedo Javaサーバー構成ファイルの例を示します。

MyTuxedoServerClass1 JavaクラスがJAVASTRINGSVCJAVAFML32SVCsvc3の各メソッドを定義し、MyTuxedoServerClass2 Javaクラスがsvc4メソッドを定義すると仮定すると、この例ではJDBC接続によりOracleデータベースへの接続が開始され、svc1svc2svc3およびsvc4の各サービスがエクスポートされます。

構成ファイルでメソッド名svc3およびsvc4<Service>プロパティが指定されていないため、これらのメソッド名はサービス名としてエクスポートされます。

リスト18-1 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>
注意:

 


トランザクション管理

Tuxedo Javaベース・トランザクションは、既存のTuxedoトランザクション管理フレームワークに基づいて実行されます。これまでと同様に、トランザクション用にUBB構成ファイルで作成する必要がある構成として、特定のグループのトランザクション・マネージャ・サーバー(TMSs)およびリソース・マネージャ(RMs)の属性が定義する必要があります。Tuxedo Javaサーバー(TMJAVASVR)はこのグループに属する必要があります。

リスト18-2 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

UBB構成ファイルにおけるトランザクションの構成方法の詳細は、トランザクションを使用するための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

リスト18-3は、Oracleデータベースの構成例です。

リスト18-3 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に指定されている場合、サービスによってトランザクションが自動的に開始されます。

 


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のみ)を適宜設定します。

使用しているプラットフォームに応じて次のいずれかを実行します。

注意: $JRE_HOMEはJREホーム・ディレクトリを指定します。設定については、$TUXDIR/tux.envも参照できます。

 


制限

 


Javaサーバー構成ファイルのスキーマ

リスト18-4に、Javaサーバー構成ファイルのXMLスキーマを示します。

リスト18-4 Javaサーバー構成スキーマ・ファイル
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="TJSconfig">
    <xs:complexType>
      <xs:all>
        <xs:element minOccurs="0" maxOccurs="1" ref="ClassPaths"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="DataSources"/>
        <xs:element minOccurs="0" maxOccurs="1" ref="Resources"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="TuxedoServerClasses"/>
      </xs:all>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClassPaths">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ClassPath"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClassPath" type="xs:string"/>
  <xs:element name="DataSources">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="DataSource"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DataSource">
    <xs:complexType>
      <xs:all>
        <xs:element minOccurs="1" maxOccurs="1" ref="DriverClass"/>
        <xs:element minOccurs="1" maxOccurs="1" ref="JdbcDriverParams"/>
      </xs:all>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="DriverClass" type="xs:string"/>
  <xs:element name="JdbcDriverParams">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="1" ref="ConnectionUrl"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ConnectionUrl" type="xs:string"/>
  <xs:element name="Resources">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="FieldTable16Classes"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="FieldTable32Classes"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ViewFile16Classes"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ViewFile32Classes"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FieldTable16Classes" type="xs:string"/>
  <xs:element name="FieldTable32Classes" type="xs:string"/>
  <xs:element name="ViewFile16Classes" type="xs:string"/>
  <xs:element name="ViewFile32Classes" type="xs:string"/>
  <xs:element name="TuxedoServerClasses">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="TuxedoServerClass"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="TuxedoServerClass">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Services"/>
      </xs:sequence>
      <xs:attribute name="name" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Services">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Service"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Service">
    <xs:complexType mixed="true">
      <xs:attribute name="name" use="required" type="xs:string"/>
      <xs:attribute name="target" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

  先頭に戻る       前  次