Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編
Object Accessアダプタの定義方法について説明します。
各電文のフォーマットについて説明します。
要求電文の電文フォーマットを次に示します。
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <xsd:element name="exec2"> <xsd:complexType> <xsd:sequence> <xsd:element name="method_name" type="xsd:string"/> <xsd:element name="in_list" type="tns:OWB2.NameValueList"/> <xsd:element name="session_data" type="tns:OWB2.NameValueList"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="OWB2.NameValueList"> <xsd:complexContent> <xsd:restriction base="tns:EComm2.NameValueList"> <xsd:sequence> <xsd:element name="item" type="tns:EComm2.NameValue" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EComm2.NameValueList"> <xsd:sequence> <xsd:element name="item" type="tns:EComm2.NameValue" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EComm2.NameValue"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="tns:CORBA.Any" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CORBA.Any"> <xsd:sequence> <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:schema> |
表3-33 要求電文フォーマット
項目 | 電文フォーマット |
---|---|
要求電文形式 | <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> [オペレーション情報] [型定義情報]... </xsd:schema> |
オペレーション情報 | <xsd:element name="exec2"> <xsd:complexType> <xsd:sequence> [入力パラメタ情報]... </xsd:sequence> </xsd:complexType> </xsd:element> |
入力パラメタ情報 |
<xsd:element name="IDLに定義したパラメタ名称" type="[型情報]"/> |
型定義情報:any |
<xsd:complexType name="CORBA.Any"> <xsd:sequence> <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> |
型定義情報:struct |
<xsd:complexType name="IDLに定義した構造体宣言名称"> <xsd:sequence> <xsd:element name="IDLに定義した構造体変数名称" type="[型情報]" minOccurs="1" maxOccurs="1"/>... </xsd:sequence> </xsd:complexType> |
型定義情報:sequence |
<xsd:complexType name="IDLに定義したシーケンス宣言名称"> <xsd:sequence> <xsd:element name="item" type="[型情報]" minOccurs="0" maxOccurs="0"/> </xsd:sequence> </xsd:complexType> |
型情報:string |
xsd:string |
型情報:any |
tns:CORBA.Any |
型情報:struct |
tns:IDLに定義した構造体宣言名称 |
型情報:sequence |
tns:IDLに定義したシーケンス宣言名称 |
要求電文の電文サンプルを次に示します。
<?xml version="1.0" encoding="UTF-8"?> <tns:exec2 xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <method_name>Mtd1</method_name> <in_list> <item> <name>MP7G</name> <value> <type>long</type> <value>200</value> </value> </item> <item> <name>GP9AKJ</name> <value> <type>Ecomm2.OctSeq</type> <value>ABCDE</value> </value> </item> </in_list> <session_data> <item> <name>S03U48</name> <value> <type>long</type> <value>212</value> </value> </item> <item> <name>H4TF8L</name> <value> <type>Ecomm2.OctSeq</type> <value>OK</value> </value> </item> </session_data> </tns:exec2> |
応答電文の電文フォーマットを次に示します。
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <xsd:element name="exec2Response"> <xsd:complexType> <xsd:sequence> <xsd:element name="result" type="tns:OWB2.NameValueList"/> <xsd:element name="out_rec" type="tns:OWB2.RecordValue"/> <xsd:element name="session_data" type="tns:OWB2.NameValueList"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:complexType name="OWB2.NameValueList"> <xsd:complexContent> <xsd:restriction base="tns:EComm2.NameValueList"> <xsd:sequence> <xsd:element name="item" type="tns:EComm2.NameValue" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EComm2.NameValueList"> <xsd:sequence> <xsd:element name="item" type="tns:EComm2.NameValue" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EComm2.NameValue"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="tns:CORBA.Any" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CORBA.Any"> <xsd:sequence> <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="OWB2.RecordValue"> <xsd:complexContent> <xsd:restriction base="tns:EComm2.RecordValue"> <xsd:sequence> <xsd:element name="name" type="tns:EComm2.NameList" minOccurs="1" maxOccurs="1"/> <xsd:element name="record" type="tns:EComm2.RecordList" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:restriction base="tns:EComm2.RecordValue"> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="EComm2.RecordValue"> <xsd:sequence> <xsd:element name="name" type="tns:EComm2.NameList" minOccurs="1" maxOccurs="1"/> <xsd:element name="record" type="tns:EComm2.RecordList" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EComm2.NameList"> <xsd:sequence> <xsd:element name="item" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EComm2.RecordList"> <xsd:sequence> <xsd:element name="item" type="tns:EComm2.ValueList" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="EComm2.ValueList"> <xsd:sequence> <xsd:element name="item" type="tns:CORBA.Any" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:schema> |
表3-34 応答電文フォーマット
項目 | 電文フォーマット |
---|---|
応答電文形式 | <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> [オペレーション情報] [型定義情報]... </xsd:schema> |
オペレーション情報 |
<xsd:element name="exec2Response"> <xsd:complexType> <xsd:sequence> [出力パラメタ情報]... </xsd:sequence> </xsd:complexType> </xsd:element> |
出力パラメタ情報 |
<xsd:element name="IDLに定義したパラメタ名称" type="[型情報]"/> 注 この情報には,リターン情報を含みます。 |
型定義情報:any |
<xsd:complexType name="CORBA.Any"> <xsd:sequence> <xsd:element name="type" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> |
型定義情報:struct |
<xsd:complexType name="IDLに定義した構造体宣言名称"> <xsd:sequence> <xsd:element name="IDLに定義した構造体変数名称" type="[型情報]" minOccurs="1" maxOccurs="1"/>... </xsd:sequence> </xsd:complexType> |
型定義情報:sequence |
<xsd:complexType name="IDLに定義したシーケンス宣言名称"> <xsd:sequence> <xsd:element name="item" type="[型情報]" minOccurs="0" maxOccurs="0"/> </xsd:sequence> </xsd:complexType> |
型情報:string |
xsd:string |
型情報:any |
tns:CORBA.Any |
型情報:struct |
tns:IDLに定義した構造体宣言名称 |
型情報:sequence |
tns:IDLに定義したシーケンス宣言名称 |
応答電文の電文サンプルを次に示します。
<?xml version="1.0" encoding="UTF-8" ?> <tns:exec2Response xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <result> <item> <name>MP7G</name> <value> <type>long</type> <value>200</value> </value> </item> <item> <name>GP9AKJ</name> <value> <type>Ecomm2.OctSeq</type> <value>ABCDE</value> </value> </item> </result> <out_rec> <name /> <record /> </out_rec> <session_data> <item> <name>S03U48</name> <value> <type>long</type> <value>212</value> </value> </item> <item> <name>H4TF8L</name> <value> <type>Ecomm2.OctSeq</type> <value>OK</value> </value> </item> <item> <name>GW:status</name> <value> <type>long</type> <value>0</value> </value> </item> </session_data> </tns:exec2Response> |
フォルト電文の電文フォーマットを次に示します。
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <xsd:element name="EComm2.Exceptionexec2Fault1"> <xsd:complexType> <xsd:sequence> <xsd:element name="code" type="xsd:int"/> <xsd:element name="message" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema> |
表3-35 フォルト電文フォーマット
項目 | 電文フォーマット |
---|---|
フォルト電文形式 | <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2" xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> [例外定義情報] </xsd:schema> |
例外定義情報 | <xsd:element name="exec2Fault1"> <xsd:complexType> <xsd:sequence> [例外情報]... </xsd:sequence> </xsd:complexType> </xsd:element> |
例外情報 | <xsd:element name="IDLの例外に定義した変数名称" type="[型情報]"/> |
型情報:long | xsd:int |
型情報:string | xsd:string |
フォルト電文の電文サンプルを次に示します。
<?xml version="1.0" encoding="UTF-8" ?> <tns:exec2Fault1 xmlns:tns="http://ObjectAccess.cstmadp.csc.soft.Hitachi.co.jp/ow/OWB2"> <code>0</code> <message>no such method:Resource 'Base' does not contain method 'Mtd1'.</message> </tns:exec2Fault1> |
Object Wrapper提供のIDLのサンプルを次に示します。
module EComm2 { typedef sequence<octet> OctSeq; typedef sequence<OctSeq> NameList; typedef sequence<any> ValueList; typedef sequence<ValueList> RecordList; struct Binary { OctSeq content; }; struct NameValue { OctSeq name; any value; }; typedef sequence<NameValue> NameValueList; struct RecordValue { NameList name; RecordList record; }; exception _Exception { long code; OctSeq message; }; }; interface OWB2 { typedef EComm2::NameValueList NameValueList; typedef EComm2::RecordValue RecordValue; NameValueList exec2 ( in string method_name, in NameValueList in_list, out RecordValue out_rec, inout NameValueList session_data) raises ( EComm2::_Exception ); }; |
Object Accessアダプタの場合,Object Accessアダプタ通信構成定義ファイルを作成する必要があります。
Object Accessアダプタ通信構成定義ファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「Object Accessアダプタ通信構成定義ファイル」を参照してください。
データ変換(マッピング)定義画面で,変換元の電文フォーマット定義ファイルおよび変換先の電文フォーマット定義ファイルを設定して,データ変換を定義します。
データ変換の定義方法については,マニュアル「サービスプラットフォーム 開発ガイド 基本開発編」の「6. データ変換の定義」を参照してください。
ユーザ定義ファイルは,次の定義ファイルをjarコマンドでアーカイブして作成します。
ユーザ定義ファイルの作成手順を説明します。
jp\co\Hitachi\soft\csc\cstmadp\ObjectAccess\cmd\def
>XCOPY C:\conf\adpoa_com.xml C:\work\jp\co\Hitachi\soft\csc\cstmadp\ObjectAccess\cmd\def\ /V >XCOPY C:\conf\adpoa_tpb.properties C:\work\jp\co\Hitachi\soft\csc\cstmadp\ObjectAccess\cmd\def\ /V
> RMDIR /S /Q C:\work\jp
注意事項を次に示します。
Object Accessアダプタを定義する場合の手順を次に示します。設定内容の詳細は,「3.3.17(8) Object Accessアダプタの場合」を参照してください。
Object Accessアダプタの場合,Object Accessアダプタ実行環境プロパティファイルを作成する必要があります。
Object Accessアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「Object Accessアダプタ実行環境プロパティファイル」を参照してください。
Object AccessアダプタのORB動作の設定は,プロパティ形式のTPBroker環境定義ファイルとして,ユーザが独自に作成します。定義ファイル名称は"adpoa_tpb.properties"とし,ユーザ定義ファイルにアーカイブします。TPBroker環境定義ファイルは,ユーザ定義ファイルにアーカイブ後に,HCSC開発環境でパッケージングし,実行環境へインポートすることで実行環境に反映されます。TPBroker環境定義ファイルの内容を変更する場合は,ユーザ定義ファイルの再アーカイブ後に,HCSC開発環境で再度パッケージングして実行環境へインポートします。なお,ORB動作の設定が必要ない場合は,TPBroker環境定義ファイルを作成する必要はありません。
TPBroker環境定義ファイルに設定したORB動作は,ほかの環境変数などの定義より優先して適用されます。
ORBの動作を定義します。同一のキーが存在する場合は,後述のキーの値が反映されます。行頭の#や!はコメントを示します。
<property name>=<property value>
定義できるプロパティについては,マニュアル「Borland(R) Enterprise Server VisiBroker(R) プログラマーズリファレンス」を参照してください。
Object Accessアダプタでは,TPBrokerの次のプロパティを標準で設定します。プロパティは,Object AccessアダプタのTPBroker環境定義ファイルで変更します。ただし,vbroker.agent.enableLocatorの設定は変更できません。Object Accessアダプタで,trueを設定してサービス実行時にスマートエージェントと通信します。
表3-36 設定するプロパティ
プロパティ | 説明 | 設定値 |
---|---|---|
vbroker.ce.iiop.ccm.htc.readerPerConnection | RelativeRoundtripTimeoutPolicyで指定したタイムアウト値が満了した場合,コネクションを切断するかを指定します。 | true タイムアウト発生時にコネクションをクローズしません。 |
vbroker.agent.enableLocator | サービス実行時にスマートエージェントと通信するかを指定します。 | true サービス実行時にスマートエージェントと通信します。 この設定は変更できません。 |
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.