2.2.3 DCCM3論理端末への端末識別情報の通知
常設コネクションを使用してDCCM3論理端末と通信する場合,端末識別情報をDCCM3論理端末に通知し,CUP.NETに割り当てられるDCCM3の論理端末を固定することができます。
(1) DCCM3論理端末でのメッセージ送受信方法
DCCM3論理端末では,通信相手となるClient .NETをIPアドレスとDCCM3論理端末のポート番号で区別する論理端末として定義し,論理端末ごとにメッセージの送受信を行っています。
したがって,複数のCUP.NETを同一マシンから起動した場合,どのCUP.NETからの要求でも,DCCM3論理端末から見るとIPアドレスが同じになってしまいます。複数のCUP.NETから同じDCCM3論理端末のポートにサービスを要求すると,DCCM3の定義では区別が付きません。そのため,該当するDCCM3の論理端末が複数定義されていた場合,DCCM3のどの論理端末にCUP.NETが割り当てられるのかが不定になってしまいます。サービス要求を受け付けるDCCM3の論理端末が異なると,DCCM3側のサーバ処理の順番が保証されなくなるため,業務によっては問題となることがあります。
(2) 端末識別情報の通知
CUP.NETがDCCM3論理端末と常設コネクションを確立するときに,端末識別情報をDCCM3論理端末に通知することで,CUP.NETに割り当てられるDCCM3の論理端末を固定することができます。これを端末識別情報設定機能といいます。この機能を使用することで,CUP.NETを常に同じDCCM3の論理端末に割り当てることができます。なお,DCCM3側では,この機能を端末固定割り当て機能といいます。
端末識別情報設定機能を使用していない場合と使用している場合のCUP.NETとDCCM3論理端末の関係を,次の図に示します。
端末識別情報設定機能は,次のどちらかの方法で使用できます。
- 方法1
-
-
Client .NET構成定義の<tp1Server>要素のhost属性にDCCM3論理端末のホスト名を指定します。
-
Client .NET構成定義の<tp1Server>要素のport属性または<rapService>要素のport属性にDCCM3論理端末のポート番号を指定します。
-
SetConnectInformationメソッドに端末識別情報を設定し,メソッドを呼び出します。
-
次のどちらかの方法でDCCM3論理端末との常設コネクションを確立します。
・ OpenConnectionメソッドを呼び出します。引数有りのOpenConnectionメソッドの場合,引数hostにDCCM3論理端末のホスト名,引数portにDCCM3論理端末のポート番号を指定します。
・ Client .NET構成定義の<rapService>要素のautoConnect属性にtrueを指定し,Callメソッドを呼び出します。
-
- 方法2
-
-
Client .NET構成定義の<tp1Server>要素のhost属性にDCCM3論理端末のホスト名を指定します。
-
Client .NET構成定義の<tp1Server>要素のport属性または<rapService>要素のport属性にDCCM3論理端末のポート番号を指定します。
-
Client .NET構成定義の<rapService>要素のconnectInformation属性に端末識別情報を設定します。
-
次のどちらかの方法でDCCM3論理端末との常設コネクションを確立します。
・ OpenConnectionメソッドを呼び出します。引数有りのOpenConnectionメソッドの場合,引数hostにDCCM3論理端末のホスト名,引数portにDCCM3論理端末のポート番号を指定します。
・ Client .NET構成定義の<rapService>要素のautoConnect属性にtrueを指定し,Callメソッドを呼び出します。
-
- 注意事項
-
Client .NET構成定義の<rapService>要素のconnectInformation属性に端末識別情報を設定して,SetConnectInformationメソッドに端末識別情報を設定した場合は,SetConnectInformationメソッドの設定が有効になります。<rapService>要素のconnectInformation属性に設定した値は,SetConnectInformationメソッドを呼び出したあと,再びOpenRpcメソッドを呼び出すまで無視されます。
(3) DCCM3論理端末に端末識別情報を通知する場合の注意事項
-
端末固定割り当て機能を使用したDCCM3の論理端末名称と,Client .NETで定義した端末識別情報とが一致していない場合に,次のメソッドを呼び出したときはErrNetDownAtClientException例外を返します。
-
OpenConnectionメソッド
-
Callメソッド(ただし,Client .NET構成定義の<rapService>要素のautoConnect属性にtrueを指定した場合)
-
-
端末固定割り当て機能を使用したDCCM3の論理端末に対して,Client .NETで端末識別情報を設定しないで次のメソッドを呼び出した場合,ErrNetDownAtClientException例外を返します。
-
OpenConnectionメソッド
-
Callメソッド(ただし,Client .NET構成定義の<rapService>要素のautoConnect属性にtrueを指定した場合)
-
-
端末固定割り当て機能を使用していないDCCM3の論理端末に対して,Client .NETから端末識別情報を設定して常設コネクションの確立を要求した場合,DCCM3はClient .NETが設定した端末識別情報の設定内容を無視します。
-
Client .NETから端末識別情報を設定して,TP1/Serverのrapサーバと常設コネクションを確立する場合,rapサーバはClient .NETが設定した端末識別情報の設定内容を無視します。また,Client .NETがrapサーバを介してDCCM3へRPCを発行する場合,Client .NETで設定した端末識別情報はDCCM3に伝達されません。
-
端末識別情報は,リモートAPI機能を使用したRPCの場合だけ有効となります。ネームサービスを使用したRPC,またはスケジューラダイレクト機能を使用したRPCの場合は,端末識別情報を設定しても無視されます。