OpenTP1 Version 7

分散トランザクション処理機能

OpenTP1 クライアント使用の手引 TP1/Client/J編

解説・手引・文法・操作書

3000-3-D59-20

目　　次

前書き

変更内容

はじめに

1.　概要

1.1　クライアント機能の特長

1.2　TP1/Client/Jの動作の仕組み

1.3　TP1/Client/Jの環境

1.3.1　インストール

1.3.2　開発環境

1.3.3　実行環境

2.　機能

2.1　常設コネクション

2.1.1　常設コネクションの確立・解放

2.1.2　常設コネクションを使用する場合に関連する定義

2.1.3　常設コネクションを使用するときの注意事項

2.2　リモートプロシジャコール

2.2.1　RPCの実現方法

2.2.2　RPCでのデータの受け渡し

2.2.3　RPCの形態

2.2.4　スケジュール機能

2.2.5　ノード間負荷バランス機能

2.2.6　RPCの時間監視

2.2.7　リモートAPI機能を使用したRPC

2.2.8　スケジューラダイレクト機能を使用したRPC

2.2.9　ネームサービスを使用したRPC

2.2.10　通信先を指定したRPC

2.2.11　同期応答型RPCタイムアウト時のサーバ負荷軽減

2.2.12　ServerSocketを使用するRPC

2.2.13　マルチスケジューラ機能を使用したRPC

2.3　トランザクション制御

2.3.1　トランザクションの開始と同期点取得

2.3.2　同期点取得

2.3.3　リモートプロシジャコールの形態と同期点の関係

2.3.4　現在のトランザクションに関する識別子の取得

2.3.5　現在のトランザクションに関する情報の報告

2.3.6　障害発生時のトランザクションの同期点を検証する方法

2.3.7　TP1/Server側の定義の指定

2.4　TCP/IP通信機能

2.4.1　メッセージの一方送信

2.4.2　メッセージの一方受信

2.4.3　メッセージの送受信

2.4.4　受信メッセージの組み立て機能

2.4.5　TCP/IP通信機能を使用するときの注意事項

2.5　サーバからの一方通知受信機能

2.5.1　一方通知受信機能の処理の流れ

2.5.2　一方通知連続受信機能の処理の流れ

2.5.3　一方通知連続受信機能を使用するときの注意事項

2.5.4　一方通知受信待ち状態の解除

2.6　TP1/Web接続機能

2.6.1　TP1/Webとの接続（セションの開始）

2.6.2　TP1/Webへのサービス要求

2.6.3　TP1/Webとの接続解除（セションの終了）

2.6.4　TP1/Webと連携したRPC機能

2.7　動的定義変更機能

2.8　TCP/IPコネクションの確立の監視機能

2.8.1　内部でconnectメソッドを使用するAPI

2.8.2　connectメソッドがタイムアウトした場合の例外

2.9　DCCM3との接続機能

2.9.1　DCCM3とのRPC

2.9.2　DCCM3とのTCP/IP通信

2.9.3　DCCM3論理端末への端末識別情報の通知

2.10　XAリソースサービス機能

2.11　トラブルシュート機能

2.11.1　トレースファイルの出力内容

2.11.2　UAPトレース

2.11.3　データトレース

2.11.4　エラートレース，メモリトレース

2.11.5　メソッドトレース

2.11.6　デバッグトレース

2.11.7　性能解析トレース

2.12　データ圧縮機能

2.12.1　データ圧縮機能の効果

2.12.2　データ圧縮機能を使用するときの注意事項

2.13　送信元ホスト指定機能

2.14　受信ポート固定機能

3.　プログラムインタフェース

3.1　API一覧

3.2　APIの使用方法

3.2.1　APIの実行順序

3.2.2　TP1/Client/J実行時の調整

3.2.3　障害情報の採取および機能の調整

3.2.4　トレース出力の指示

4.　TP1/Client/Jで使用するクラス

クラス TP1Client

クラス DCRpcBindTbl

クラス ErrAcceptCanceledException

クラス ErrBufferOverflowException

クラス ErrCollisionMessageException

クラス ErrClientTimedOutException

クラス ErrConnfreeException

クラス ErrConnRefusedException

クラス ErrFatalException

クラス ErrHazardException

クラス ErrHazardNoBeginException

クラス ErrHeuristicException

クラス ErrHeuristicNoBeginException

クラス ErrHostUndefException

クラス ErrInitializingException

クラス ErrInvalidArgsException

クラス ErrInvalidMessageException

クラス ErrInvalidPortException

クラス ErrInvalidReplyException

クラス ErrIOErrException

クラス ErrMessageTooBigException

クラス ErrNetDownAtClientException

クラス ErrNetDownAtServerException

クラス ErrNetDownException

クラス ErrNoBeginException

クラス ErrNoBufsAtServerException

クラス ErrNoBufsException

クラス ErrNoSuchServiceException

クラス ErrNoSuchServiceGroupException

クラス ErrNotTrnExtendException

クラス ErrNotUpException

クラス ErrProtoException

クラス ErrReplyTooBigException

クラス ErrRMException

クラス ErrRollbackException

クラス ErrRollbackNoBeginException

クラス ErrSecchkException

クラス ErrSecurityException

クラス ErrServerBusyException

クラス ErrServerTimedOutException

クラス ErrServiceClosedException

クラス ErrServiceNotUpException

クラス ErrServiceTerminatedException

クラス ErrServiceTerminatingException

クラス ErrSyserrAtServerException

クラス ErrSyserrException

クラス ErrTestmodeException

クラス ErrTimedOutException

クラス ErrTMException

クラス ErrTrnchkException

クラス ErrTrnchkExtendException

クラス ErrVersionException

クラス TP1ClientException

5.　定義

5.1　定義の概要

5.1.1　TP1/Client/J環境定義の一覧

5.1.2　定義の規則

5.1.3　パス名の記述形式

5.2　TP1/Client/J環境定義の詳細

5.2.1　形式

5.2.2　オペランド

5.2.3　TP1/Client/J環境定義を指定するときの注意事項

6.　障害対策

6.1　トレース情報の採取

6.2　ネットワーク障害時の対処

6.3　タイマ設定値の妥当性

6.4　その他の障害の対処

付録

付録A　バージョンアップ時の変更点

付録A.1　07-02での変更点

付録A.2　07-01での変更点

付録A.3　07-00での変更点

索引

[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.

前書き

■ 対象製品

P-2464-7394　 uCosminexus TP1/Client/J　 07-02
P-2464-73A4　 uCosminexus TP1/Client/J　 07-02

これらのプログラムプロダクトのほかにも，このマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。
この製品は，ISO9001およびTickITの認証を受けた品質マネジメントシステムで開発されました。

■ 輸出時の注意

本製品を輸出される場合には，外国為替および外国貿易法ならびに米国の輸出管理関連法規などの規制をご確認の上，必要な手続きをお取りください。
なお，ご不明な場合は，弊社担当営業にお問い合わせください。

■ 商標類

日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
Internet Explorerは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。

■ 発行

2006年 6月（第1版）3000-3-D59
2008年 8月（第3版）3000-3-D59-20

■ 著作権

All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.

変更内容

変更内容（3000-3-D59-20） uCosminexus TP1/Client/J 07-02

追加・変更内容
変更個所

サービス要求メッセージ受信処理を並行動作させることによって，スケジューリング遅延を回避できるようにした（マルチスケジューラ機能）。
これに伴い，TP1/Client/J環境定義に，次のオペランドを追加した。

dcscdmulti

dcscdmulticount

2.2.13，5.2.1，5.2.2

従来メインフレームのOLTPでの端末一斉起動と同様の運用ができるようにした（サーバからの一方通知受信機能）。
これに伴い，TP1Clientクラスに，次のメソッドを追加した。

acceptNotification

cancelNotification

openNotification

acceptNotificationChained

closeNotification

また，次のクラスを追加した。

ErrAcceptCanceledException

ErrVersionException

2.5，2.11.2，3.1，4.　クラス TP1Client，4.　クラス ErrAcceptCanceledException，4.　クラス ErrVersionException

次のTP1Clientクラスのメソッドから，UAPトレースを取得するようにした。

setUapTraceMode

setErrorTraceMode

setMethodTraceMode

setDataTraceMode

2.11.2

UAPトレースに，性能解析トレースの識別情報が出力されるようにした。
2.11.2，2.11.7(5)

バージョン07-02以降のTP1/Serverに対して，リモートAPI機能を使用したRPCを行う場合は，スケジューラに送信するRPC電文中への識別情報（IPアドレスなど）を付加できるようにした。
2.11.7(2)

RPCやTCP/IP通信機能でのコネクション確立要求時に，送信元ホストを指定できるようにした（送信元ホスト指定機能）。
これに伴い，TP1/Client/J環境定義にdccltcupsndhostオペランドを追加した。
2.13，5.2.1，5.2.2

スケジューラダイレクト機能を使用したRPCの受信ポート，およびネームサービスを使用したRPCの受信ポートを固定できるようにした（受信ポート固定機能）。
これに伴い，TP1/Client/J環境定義にdccltcuprcvportオペランドを追加した。
2.14，5.2.1，5.2.2

TP1/Client/J環境定義のオペランドの一覧を追加した。
5.1.1

rapサーバで代理実行するトランザクションブランチの，開始から終了までの最大実行時間を指定できるようにした。
これに伴い，TP1/Client/J環境定義にdcclttrcmplmttmオペランドを追加した。
5.2.1，5.2.2

TP1/Client/J環境定義のdcrcvportオペランドについて，注意事項を追加した。
5.2.2

バージョンアップ時の，API，定義，コマンドおよびデフォルト値の変更を記載した。
付録A

単なる誤字・脱字などはお断りなく訂正しました。

変更内容（3000-3-D59-10） uCosminexus TP1/Client/J 07-01

追加・変更内容

TP1/Client/Jが提供するファイルとファイルを格納するディレクトリについての説明を追加した。

常設コネクションを使用してDCCM3論理端末と通信する場合に，CUPに割り当てられるDCCM3の論理端末を固定する，端末識別情報設定機能を追加した。
これに伴い，TP1ClientクラスにsetConnectInformationメソッドを追加した。
また，TP1/Client/J環境定義にdccltconnectinfオペランドを追加した。

RPCによってネットワーク上に送り出されるユーザデータを圧縮する，データ圧縮機能を追加した。
これに伴い，TP1/Client/J環境定義にdccltdatacompオペランドを追加した。

複数のスレッドから，同一のTP1Clientクラスのインスタンスのメソッドを実行する場合の注意事項を追加した。

はじめに

このマニュアルは，次のプログラムプロダクトの機能と使い方について説明したものです。

P-2464-7394　uCosminexus TP1/Client/J

P-2464-73A4　uCosminexus TP1/Client/J

なお，これらの製品は，Java(TM)2 Software Development Kit, Standard Edition, Version 5.0以降に対応するOSでご利用できます。

本文中に記載されている製品のうち，このマニュアルの対象製品ではない製品については，OpenTP1 Version 7対応製品の発行時期をご確認ください。

＜はじめにの構成＞

対象読者

マニュアルの構成

関連マニュアル

読書手順

図中で使用する記号

このマニュアルでの表記

略語一覧

常用漢字以外の漢字の使用について

KB（キロバイト）などの単位表記について

対象読者

システム管理者をはじめとして，システム設計者，プログラマ，オペレータの方を対象としています。

このマニュアルの記述は，マニュアル「OpenTP1 解説」の知識があることを前提としていますので，あらかじめお読みいただくことをお勧めします。

マニュアルの構成

このマニュアルは，次に示す章と付録から構成されています。

第1章　概要

TP1/Client/Jの機能概要と特長について説明しています。

第2章　機能

TP1/Client/Jの機能について説明しています。

第3章　プログラムインタフェース

TP1/Client/Jを使用するときのプログラムインタフェースについて説明しています。

第4章　TP1/Client/Jで使用するクラス

TP1/Client/Jで使用するクラスについて説明しています。

第5章　定義

TP1/Client/J環境定義について説明しています。

第6章　障害対策

障害が発生した場合の対処方法について説明しています。

付録A　バージョンアップ時の変更点

各バージョンでのAPI，定義およびコマンドの変更点について説明しています。

関連マニュアル

読書手順

このマニュアルは，利用目的に合わせて直接章を選択して読むことができます。利用目的別に，次の流れに従って，▼の部分をお読みいただくことをお勧めします。

図中で使用する記号

このマニュアルで使用する記号を，次のように定義します。

このマニュアルでの表記

このマニュアルでは，製品の名称を省略して表記しています。製品の名称と，このマニュアルでの表記を次に示します。

製品名称 | 略称
uCosminexus Application Server Enterprise | Cosminexus Application Server
uCosminexus Application Server Standard
VOS1 DCCM3 | DCCM3
VOS3 XDM/DCCM3
Java(TM) | Java
Java(TM)2 Software Development Kit, Standard Edition | JDK
uCosminexus TP1/Client/J | TP1/Client/J
uCosminexus TP1/Client/P | TP1/Client/P
uCosminexus TP1/Client/W | TP1/Client/W
uCosminexus TP1/NET/TCP/IP | TP1/NET/TCP/IP
uCosminexus TP1/LiNK | TP1/LiNK | TP1/Server
uCosminexus TP1/Server Base | TP1/Server Base
uCosminexus TP1/Web | TP1/Web
Microsoft(R) Windows(R) 2000 Advanced Server Operating System | Windows 2000
Microsoft(R) Windows(R) 2000 Datacenter Server Operating System
Microsoft(R) Windows(R) 2000 Professional Operating System
Microsoft(R) Windows(R) 2000 Server Operating System
Microsoft(R) Windows(R) Software Development Kit | Windows SDK
Microsoft(R) Windows Server(R) 2003, Datacenter Edition | Windows Server 2003 (32ビット用) | Windows Server 2003
Microsoft(R) Windows Server(R) 2003, Datacenter x64 Edition
Microsoft(R) Windows Server(R) 2003, Enterprise Edition
Microsoft(R) Windows Server(R) 2003, Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2003 R2, Enterprise Edition
Microsoft(R) Windows Server(R) 2003 R2, Enterprise x64 Edition
Microsoft(R) Windows Server(R) 2003 R2, Standard Edition
Microsoft(R) Windows Server(R) 2003 R2, Standard x64 Edition
Microsoft(R) Windows Server(R) 2003, Standard Edition
Microsoft(R) Windows Server(R) 2003, Standard x64 Edition
Microsoft(R) Windows Server(R) 2003, Enterprise Edition for Itanium-based systems | Windows Server 2003 (64ビット用)
Microsoft(R) Windows Vista(R) Business (x86) | Windows Vista（32ビット用） | Windows Vista
Microsoft(R) Windows Vista(R) Enterprise (x86)
Microsoft(R) Windows Vista(R) Ultimate (x86)
Microsoft(R) Windows Vista(R) Business (x64) | Windows Vista（64ビット用）
Microsoft(R) Windows Vista(R) Enterprise (x64)
Microsoft(R) Windows Vista(R) Ultimate (x64)
Microsoft(R) Windows(R) XP Professional Operating System | Windows XP

Windows 2000，Windows Server 2003，Windows XP，およびWindows Vistaで機能差がない場合，Windowsと表記しています。

略語一覧

このマニュアルで使用する英略語の一覧を次に示します。

英略語 | 英字での表記
API | Application Programming Interface
CGI | Common Gateway Interface
CUP | Client User Program
DCE | Distributed Computing Environment
EJB | Enterprise Java Beans(TM)
FD | Floppy Disk
HTTP | Hyper Text Transfer Protocol
J2EE | Java 2 Enterprise Edition
JDK | Java(TM) Development Kit
JSP | JavaServer Pages(TM)
MHP | Message Handling Program
OLTP | Online Transaction Processing
OS | Operating System
PC | Personal Computer
PRF | PeRFormance
RAP | Remote Application Programming Interface
RPC | Remote Procedure Call
SPP | Service Providing Program
TCP/IP | Transmission Control Protocol / Internet Protocol
TMS-4V/SP | Transaction Management System-4V/System Product
UAP | User Application Program
VM | Virtual Machine
WS | Workstation
WWW | World Wide Web

常用漢字以外の漢字の使用について

このマニュアルでは，常用漢字を使用することを基本としていますが，次に示す用語については，常用漢字以外の漢字を使用しています。

個所（かしょ）　輻輳（ふくそう）　閉塞（へいそく）

KB（キロバイト）などの単位表記について

1KB（キロバイト），1MB（メガバイト），1GB（ギガバイト），1TB（テラバイト）はそれぞれ1,024バイト，1,024²バイト，1,024³バイト，1,024⁴バイトです。

1.　概要

OpenTP1のクライアント機能の概要および特長について説明します。

＜この章の構成＞

1.1　クライアント機能の特長

1.2　TP1/Client/Jの動作の仕組み

1.3　TP1/Client/Jの環境

1.1　クライアント機能の特長

TP1/Client/Jを使用すると，WWWブラウザで動作するJavaアプレット，Javaアプリケーション，およびアプリケーションサーバで動作するJavaサーブレットから，OpenTP1のサーバUAPへリモートプロシジャコールでサービスを要求できます。Javaアプレット，Javaアプリケーション，およびJavaサーブレットで作成したサービスを要求するプログラムをCUPといいます。CUPがサービスを要求できるサーバUAPは，OpenTP1のサービス提供プログラム（SPP）です。

TP1/Client/Jを使用すると，CUPが起動したSPPからトランザクションを起動することもできます。そのため，イントラネットおよびインターネット上の業務システムに分散OLTP環境を適用できます。また，CUPをJavaアプレット，Javaアプリケーション，およびJavaサーブレットで作成できるので，一つのCUPで幅広いプラットフォームをサポートできます。プラットフォームに合わせて複数のCUPを作成する必要はありません。

なお，このマニュアルでは，TP1/Server BaseとTP1/LiNKの総称として，TP1/Serverと記載します。TP1/Client/Jからの要求を処理できるTP1/Server Baseのバージョンは03-05以降となります。それ以前のバージョンでは動作しません。

CUPをJavaアプレット，Javaアプリケーション，およびJavaサーブレットで作成した場合のTP1/ServerとTP1/Client/Jの関係を，次の図に示します。

図1-1　TP1/ServerとTP1/Client/Jの関係（Javaアプレットの場合）

JavaアプレットでCUPを作成した場合，CUPをWWWサーバで一括管理できます。CUPをクライアント側に配布する必要はありません。

図1-2　TP1/ServerとTP1/Client/Jの関係（Javaアプリケーションの場合）

図1-3　TP1/ServerとTP1/Client/Jの関係（Javaサーブレットの場合）

1.2　TP1/Client/Jの動作の仕組み

TP1/Client/Jは，次の機能を実行する場合に，ある特定のTP1/Serverを窓口として使用します。これをリモートプロシジャコール（RPC）といいます。RPCの詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。TP1/Client/Jが使用できるRPCには，次の四つがあります。

リモートAPI機能を使用したRPC

スケジューラダイレクト機能を使用したRPC

ネームサービスを使用したRPC

通信先を指定したRPC

窓口となるTP1/Serverは，TP1/Client/J環境定義のdchostオペランドで定義します。

TP1/Client/Jの動作の仕組みを，次の図に示します。

図1-4　TP1/Clientの動作の仕組み（1/2）

図1-5　TP1/Clientの動作の仕組み（2/2）

1.3　TP1/Client/Jの環境

TP1/Client/Jは，OpenTP1サーバへアプリケーションを呼び出すクラスライブラリファイルを提供します。TP1/Client/Jのインストール先，開発環境，および実行環境について説明します。

＜この節の構成＞

1.3.1　インストール

1.3.2　開発環境

1.3.3　実行環境

1.3.1　インストール

＜この項の構成＞

(1)　提供媒体および提供形態

(2)　クラスライブラリファイルのインストール先

(3)　ファイルアクセス権限の設定

(1)　提供媒体および提供形態

TP1/Client/Jは，複数のプラットフォームに対応するため，JolietフォーマットのCD-ROMで提供しています。PC以外のマシンにインストールする場合は，一度PCにインストールしたあと，インストールしたいマシンにバイナリモードでファイル転送するなどしてインストールしてください。

なお，TP1/Client/Jのファイルはロングファイルネーム形式で格納されています。そのため，ファイル転送元のPCのOSは，ロングファイルネーム形式を識別できる必要があります。

TP1/Client/Jのファイルは，大きく分けて次の表に示す二つのディレクトリに格納されています。

表1-1　TP1/Client/Jのファイルと格納ディレクトリ

格納ディレクトリ | TP1/Client/Jのファイル | 説明
LIB | TP1Client.jar | TP1/Client/Jのクラスライブラリが，jar形式で格納されています。
SAMPLES | AppletSample.html | TP1/Client/Jを使用するアプレット，アプリケーション，およびサーブレットのサンプルソースが格納されています。
AppletSample.java
ApplicationSample.java
betran.ini
ServletSample.java

(2)　クラスライブラリファイルのインストール先

クラスライブラリファイルのインストール先について説明します。

Javaアプレット開発時およびJavaアプレット実行時

任意のディレクトリにTP1Client.jarファイルを格納し，HTMLのappletタグで指定してください。

Javaアプリケーション実行時

JDKを使用する場合，任意のディレクトリにTP1Client.jarファイルを格納し，環境変数CLASSPATHを設定します。

Javaサーブレット実行時

使用するJavaサーブレットの仕様に従って，TP1Client.jarファイルを格納してください。

(3)　ファイルアクセス権限の設定

TP1/Client/Jでアクセスするファイルとそのファイルに必要なアクセス権限を次の表に示します。

表1-2　TP1/Client/Jで使用するファイルとアクセス権限

ファイル種別 | アクセス種別 | 格納場所
TP1/Client/Jクラスライブラリ | 読み取り | 任意
TP1/Client/J環境定義 | 読み取り | 任意
UAPトレースファイル | 書き込み | TP1/Client/J環境定義のdcuaptracepathオペランド，またはsetUapTraceModeメソッドのpath引数で指定したディレクトリ
データトレースファイル | 書き込み | TP1/Client/J環境定義のdcdatatracepathオペランド，またはsetDataTraceModeメソッドのpath引数で指定したディレクトリ
メソッドトレースファイル | 書き込み | TP1/Client/J環境定義のdcmethodtracepathオペランド，またはsetMethodTraceModeメソッドのpath引数で指定したディレクトリ
エラートレースファイル | 書き込み | TP1/Client/J環境定義のdcerrtracepathオペランド，またはsetErrorTraceModeメソッドのpath引数で指定したディレクトリ
デバッグトレースファイル | 書き込み | Java VM実行ユーザのホームディレクトリ下のTP1clientJディレクトリ

TP1/Client/Jを使用するクライアントプログラムを動作させるJava VMでセキュリティマネジャを適用する場合，TP1/Client/Jのクラスライブラリがこれらファイルにアクセスできるよう，適切なパーミッションをセキュリティポリシファイルに記述してください。Javaサーブレット，またはEJBの場合，これらコンテナを実装しているアプリケーションサーバ製品で，セキュリティの制約のためデフォルトでセキュリティマネジャを使用していることがあります。使用するアプリケーションサーバの仕様をご確認の上，適切に設定してください。

1.3.2　開発環境

TP1/Client/Jを稼働させるには，Javaアプレット，Javaアプリケーション，およびJavaサーブレットを開発する環境（Javaコンパイラなど）が必要です。

JDKのバージョン

Java(TM)2 Software Development Kit, Standard Edition, Version 5.0（JDK 5.0）以降に対応します。

1.3.3　実行環境

TP1/Serverサーバのバージョン

TP1/Client/Jからの要求を処理できるのは，TP1/Server Base 03-05以降です。

Cosminexus Application Serverをご利用になる場合

Cosminexus Application ServerのJ2EEサーバモード※でJavaサーブレット，EJB，またはJSPからTP1/Client/Jを使用する場合，あらかじめ次の設定を行ってください。

J2EEサーバ用オプション定義ファイル※を編集し，次の文字列を記述する。
add.class.path=<TP1/Client/Jインストールディレクトリ>/TP1Client.jar

サーバ管理コマンド用オプション定義ファイル※を編集し，次の文字列を記述する。
Windows版の場合
set USRCONF_JVM_CLASSPATH=<TP1/Client/Jインストールディレクトリ>/TP1Client.jar
UNIX版の場合
set USRCONF_JVM_CLPATH=<TP1/Client/Jインストールディレクトリ>/TP1Client.jar
インストールディレクトリパス名の指定に関しては，使用するOSの記述形式に従って記述してください。

注※

J2EEサーバモード，J2EEサーバ用オプション定義，サーバ管理コマンド用オプション定義については，マニュアル「Cosminexus 機能解説」，マニュアル「Cosminexus リファレンス 定義編」を参照してください。

2.　機能

OpenTP1のクライアント機能について説明します。

＜この章の構成＞

2.1　常設コネクション

2.2　リモートプロシジャコール

2.3　トランザクション制御

2.4　TCP/IP通信機能

2.5　サーバからの一方通知受信機能

2.6　TP1/Web接続機能

2.7　動的定義変更機能

2.8　TCP/IPコネクションの確立の監視機能

2.9　DCCM3との接続機能

2.10　XAリソースサービス機能

2.11　トラブルシュート機能

2.12　データ圧縮機能

2.13　送信元ホスト指定機能

2.14　受信ポート固定機能

2.1　常設コネクション

TP1/Client/Jでは，CUP（TP1/Client/Jを使用したJavaアプレット，Javaアプリケーション，またはJavaサーブレット）とrapサーバの間のコネクションを確立したままでメッセージを送受信できます。このようなコネクションを常設コネクションといいます。なお，リモートAPI機能を使用したRPCを実行するとき，連鎖型RPCを使用するとき，およびトランザクション機能を使用するときは，必ず常設コネクションを確立してください。

常設コネクションを確立すると，コネクション確立・解放のための制御用パケットを減らせるため，通信の効率が向上します。

＜この節の構成＞

2.1.1　常設コネクションの確立・解放

2.1.2　常設コネクションを使用する場合に関連する定義

2.1.3　常設コネクションを使用するときの注意事項

2.1.1　常設コネクションの確立・解放

常設コネクションを確立するには，openConnectionメソッドを呼び出します。接続要求先のrapサーバの位置は，openConnectionメソッドの引数で指定するか，TP1/Client/J環境定義のdchostオペランド，およびdcrapportオペランドで指定します。ただし，CUPとrapリスナー，rapサーバの間にファイアウォールがある場合は，rapサーバの代わりにファイアウォールの位置を指定してください。

openConnectionメソッドが例外を返した場合は，常設コネクションは確立されていません。

TP1/Client/Jが同時に確立できる常設コネクションは，1CUPで1コネクションだけです。TP1/Client/Jの常設コネクションには，管理方式によって次の二つのモードがあります。

非オートコネクトモード

非オートコネクトモードは，CUPで明示的にopenConnectionメソッドを呼び出してTP1/Serverのrapリスナー，rapサーバとのコネクションを確立します。openConnectionメソッドを呼び出さないでrpcCallメソッドを呼び出した場合，rpcCallメソッドはErrProtoExceptionを返します。コネクションを解放するには，CUPでcloseConnectionメソッドを明示的に呼び出します。

オートコネクトモード

オートコネクトモードは，TP1/Client/Jでコネクションを管理します。TP1/Client/Jは，rpcCallメソッドまたはtrnBeginメソッドが最初に呼び出されたときにコネクションが確立されていないと判断すると，自動的にrapリスナー，rapサーバとの間に常設コネクションを確立します。このため，openConnectionメソッドの呼び出しは不要です。呼び出した場合，ErrProtoExceptionを返します。コネクションの解放はrpcCloseメソッド内で行います。TP1/Client/Jで管理しているコネクションを強制的に解放したい場合は，closeConnectionメソッドを呼び出します。

非オートコネクトモードを使用するか，オートコネクトモードを使用するかはTP1/Client/J環境定義のdcrapautoconnectオペランドで指定するか，またはsetRpcextendメソッドで指定します。

closeConnectionメソッドを呼び出して常設コネクションを解放するまで，メッセージの送受信には常設コネクションが使用されます。ただし，何らかの障害が発生した場合，常設コネクションは解放されます。

常設コネクションの確立・解放処理を次の図に示します。

図2-1　常設コネクションの確立・解放処理

2.1.2　常設コネクションを使用する場合に関連する定義

常設コネクションを使用する場合，必要に応じて次の定義を設定してください。

TP1/Client/J環境定義

dccltinquiretime

dchost

dcrapautoconnect

dcrapdirect

dcrapport

rapリスナーサービス定義
rapリスナーサービス定義の詳細については，マニュアル「OpenTP1 システム定義」を参照してください。

2.1.3　常設コネクションを使用するときの注意事項

トランザクション内からは常設コネクションを確立できません。常設コネクションを確立したあと，トランザクションを生成してください。

2.2　リモートプロシジャコール

CUPからSPPへのリモートプロシジャコール（RPC）について説明します。

RPCの詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

＜この節の構成＞

2.2.1　RPCの実現方法

2.2.2　RPCでのデータの受け渡し

2.2.3　RPCの形態

2.2.4　スケジュール機能

2.2.5　ノード間負荷バランス機能

2.2.6　RPCの時間監視

2.2.7　リモートAPI機能を使用したRPC

2.2.8　スケジューラダイレクト機能を使用したRPC

2.2.9　ネームサービスを使用したRPC

2.2.10　通信先を指定したRPC

2.2.11　同期応答型RPCタイムアウト時のサーバ負荷軽減

2.2.12　ServerSocketを使用するRPC

2.2.13　マルチスケジューラ機能を使用したRPC

2.2.1　RPCの実現方法

SPPは，TP1/Serverのユーザサービス構成定義，またはdcsvstartコマンドで起動しておきます。

CUPからサービスを要求するメソッドを呼び出して，SPPにサービス要求します。サービスを要求するときには，SPPのサービスグループ名とサービス名をパラメタに設定したrpcCallメソッドを呼び出します。

2.2.2　RPCでのデータの受け渡し

RPCでのデータの受け渡しは，rpcCallメソッドに，SPPのサービスグループ名，サービス名，入力パラメタ，入力パラメタ長，サービスの応答格納領域，応答長を指定して呼び出します。rpcCallメソッドで設定できる応答長の最大値は1メガバイトです。この値は，TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドで変更できます。

RPCのデータの受け渡しを次の図に示します。

図2-2　RPCのデータの受け渡し

注

サービス関数から返す応答の長さ（NNの値）は，rpcCallメソッドで設定した値（nnの値）と同じか，または小さい値となるようにしてください。

2.2.3　RPCの形態

TP1/Client/Jで実行できるRPCの形態は，同期応答型RPC，非応答型RPC，および連鎖型RPCです。

＜この項の構成＞

(1)　同期応答型RPC

(2)　非応答型RPC

(3)　連鎖型RPC

(1)　同期応答型RPC

CUPからSPPへ問い合わせメッセージを送信し，応答メッセージを受信する形態です。CUPは，SPPから処理結果が返ってくるまで，次の処理を待ちます。同一サービスを複数回呼び出した場合，サーバプロセスはそのたびにスケジュールされます。

同期応答型RPCの処理の流れを次の図に示します。

図2-3　同期応答型RPCの処理の流れ

(2)　非応答型RPC

CUPからSPPへ問い合わせメッセージを送信し，応答メッセージを受信しない形態です。CUPは，SPPへ問い合わせメッセージを送信したあと，SPPから処理結果を受け取らないで，すぐに次の処理を実行します。

非応答型RPCでは，何らかの通信障害が発生した場合や呼び出したサービスが誤っていた場合でもエラーを受け取れません。

非応答型RPCの処理の流れを次の図に示します。

図2-4　非応答型RPCの処理の流れ

(3)　連鎖型RPC

TP1/Client/JのリモートAPI機能を使用したCUPからSPPへ問い合わせメッセージを送信し，問い合わせた応答メッセージを受信する形態です。CUPは，SPPから処理結果が返ってくるまで，次の処理を待ちます。同期応答型RPCとの違いは，サーバプロセスを固定できることです。連鎖型RPCの場合，同一サービスに複数回問い合わせメッセージを送信しても，サーバプロセスは再スケジュールされません。

連鎖型RPCを使用すると，一つのトランザクション処理に必要なユーザプロセスの数が少なくなり，トランザクション処理に掛かる負荷を軽減できます。トランザクションとして連鎖型RPCを使用する場合は，一つのグローバルトランザクションで動作します。

連鎖型RPCの開始

連鎖型RPCとなるサービス要求をする場合は，サービスを要求するrpcCallメソッドのflags引数にDCRPC_CHAINEDを指定してください。この値を指定してサービスを要求すると，SPPは連鎖型RPCであることを認識して，プロセスを確保します。2回目以降のサービス要求のflags引数にもDCRPC_CHAINEDを指定します。

連鎖型RPCの終了

連鎖型RPCは，次のどちらかの方法で終了します。

連鎖型RPCを実行しているサービスグループに対して，flags引数にDCNOFLAGSを指定したrpcCallメソッド（同期応答型RPC）を実行する。※

連鎖型RPCを実行しているグローバルトランザクションを同期点処理（コミット，またはロールバック）で完了させる。

注※

同期応答型RPCを実行しないでcloseConnectionメソッド，またはrpcCloseメソッドを呼び出すと，次の状態となります。

グローバルトランザクションの範囲外の場合
サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまで占有されます。

グローバルトランザクションの範囲内の場合
暗黙的にコミットされ，連鎖型RPCを終了します。

連鎖型RPCの時間監視

連鎖型RPCでサービスを要求されるUAPは，CUPに応答を返してから，次のサービス要求が来るまでの間，またはトランザクションの同期点処理が来るまでの時間を監視しています。この監視時間を過ぎても次のサービス要求，または同期点処理要求が来ない場合は，CUPで障害が発生したものと判断して，SPPを異常終了させます。監視時間はユーザサービス定義のwatch_next_chain_timeオペランドで指定します。

2.2.4　スケジュール機能

TP1/Serverのスケジュール機能は，CUPからSPPに対するサービス要求でも有効です。TP1/Serverは，SPPのサービスグループごとにスケジュールキューを作成し，サービス要求をスケジュールします。

2.2.5　ノード間負荷バランス機能

OpenTP1では，RPCによる要求が特定のノードに集中しないようにノード間で負荷を分散する機能があります。これをノード間負荷バランス機能といいます。

ノード間負荷バランス機能を使用するためには，負荷分散の前提として次の条件を満たしている必要があります。

複数のノードに同一のサービスを提供するユーザサーバが起動されていること。

各OpenTP1ノードはシステム共通定義のall_nodeオペランドに自分以外のノードを定義して，お互いのOpenTP1ノードで起動されているユーザサーバの情報（ネーム情報）をやり取りしていること。

ここでは，OpenTP1のノード間負荷バランス機能を使用する場合のTP1/Client/J側，TP1/Server側の関連する定義，処理，およびRPCの処理を説明します。なお，TP1/Client/JではTP1/Server側の判断による負荷分散機能だけを提供します。

＜この項の構成＞

(1)　TP1/Server側の判断で負荷分散を行う場合

(1)　TP1/Server側の判断で負荷分散を行う場合

TP1/Serverのスケジュールサービスが，ノードのスケジュール状態に応じて，より効率的に処理できるノードへ負荷を分散させます。

(a)　TP1/Client/J側の定義

TP1/Client/J環境定義にdcscddirect=Yを指定します。

これによって，TP1/Client/J側はTP1/Serverのスケジュールサービスに負荷分散を依頼できます。TP1/Client/J側の定義では，どのOpenTP1ノードのスケジュールサービスに判断を依頼するかを指定します。

この場合，スケジュールを依頼するOpenTP1ノードが複数ある場合，dchostオペランドに指定された順番にスケジュールを依頼します。dchostオペランドに指定された順番ではなく，スケジュールを依頼するTP1/Serverをランダムに選択するには，TP1/Client/J環境定義にdchostselect=Yを指定します。

(b)　TP1/Server側の定義

TP1/Server側の定義では，次のどちらかの設定をする必要があります。

スケジュールサービス定義のオペランドに次の指定をする。
scd_this_node_first = N （デフォルト）
scd_announce_server_status = Y （デフォルト）

スケジュールサービス定義を省略する。

2.2.6　RPCの時間監視

同期応答型RPCを行う場合，応答メッセージを受信するまでの時間を監視できます。

監視時間は，TP1/Client/J環境定義のdcwatchtimオペランドで指定します。

また，CUPからsetDcwatchtimメソッドを呼び出して，監視時間を設定することもできます。要求するサービスに応じて，監視時間を変更したい場合に，RPCを行う前に設定します。監視時間を過ぎても応答メッセージが返らない場合には，RPCがエラーリターンします。

2.2.7　リモートAPI機能を使用したRPC

TP1/Client/Jでは，CUPとTP1/Server間に常設コネクションを確立して，CUPが発行したAPIを，TP1/Server側に転送してTP1/Server側のプロセスで実行できます。このような機能をリモートAPI機能といいます。リモートAPI機能を使うと，ファイアウォールの内側にあるUAPに対しても，サービスを要求できます。ただし，Javaアプレットの場合は，Javaのセキュリティの制約のため，そのJavaアプレットが属するWWWサーバ上のTP1/Serverで起動しているrapサーバとのコネクションしか確立できません。Javaアプレットが属するWWWサーバ上のTP1/Server以外で起動しているrapサーバとコネクションを確立しようとすると，セキュリティマネジャがSecurityExceptionを返します。なお，リモートAPI機能を使用したRPCは，TP1/Serverのほかに，DCCM3およびTMS-4V/SPを使用できます。

リモートAPI機能を使用したサービス要求の流れを次の図に示します。

図2-5　リモートAPI機能を使用したサービス要求の流れ

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

openConnectionメソッドを呼び出してTP1/Serverのrapサーバとの間にコネクションを確立する。

rpcCallメソッドを呼び出してrapサーバ経由で目的のSPPにサービス要求をする。
rpcCallメソッドは，コネクション確立中に何回でも呼び出せます。

closeConnectionメソッドを呼び出してTP1/Serverのrapサーバとのコネクションを解放する。

注

DCEで管理されているセキュリティ対象サーバに対してrapサーバを使用してサービス要求をすると，ErrSecchkExceptionが返されます。

TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してリモートAPI機能を使用する場合，システム共通定義にrpc_max_message_sizeオペランドを指定していないTP1/ServerのSPPに対してサービス要求をすると，RPCがエラーリターンします。

2.2.8　スケジューラダイレクト機能を使用したRPC

スケジューラダイレクト機能を使用したRPCは，Javaアプリケーション，およびJavaサーブレットから実行できるサービス要求です。Javaアプレットのセキュリティの制約があるため，Javaアプレットからは実行できません。

スケジューラダイレクト機能を使用したRPCの流れと，RPCごとにサービス要求先スケジューラを分散させる場合の定義について説明します。

＜この項の構成＞

(1)　スケジューラダイレクト機能を使用したRPCの流れ

(2)　RPCごとにサービス要求先スケジューラを分散させる場合の定義

(1)　スケジューラダイレクト機能を使用したRPCの流れ

スケジューラダイレクト機能を使用したRPCを行う場合は，TP1/Client/J環境定義にdcscddirect=Yを指定します。さらに，TP1/Client/J環境定義にdchostおよびdcscdportオペランドを指定するか，またはsetDchostメソッドでscdサーバ（スケジュールサーバ）を指定します。また，rpcCallメソッドを呼び出す前にはrpcOpenメソッドを呼び出す必要があります。CUPの最後にはrpcCloseメソッドを呼び出す必要があります。

スケジューラダイレクト機能を使用したRPCのサービス要求の流れを次の図に示します。

図2-6　スケジューラダイレクト機能を使用したRPCのサービス要求の流れ

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

rpcCallメソッドを呼び出してTP1/Serverのscdサーバを経由して目的のSPPにサービス要求をする。
rpcCallメソッドは，コネクション確立中（rpcOpenメソッドを呼び出してからrpcCloseメソッドを呼び出すまでの間），何回でも呼び出せます。

rpcCloseメソッドを呼び出してRPC環境を解放する。

なお，この機能の使用時は，ソケット受信型SPPに対してRPCを発行できません。また，TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してこの機能を使用した場合，通信先のTP1/Serverノードでエラーが発生することがあります。

(2)　RPCごとにサービス要求先スケジューラを分散させる場合の定義

スケジューラダイレクト機能を使用したRPCでは，RPCごとにラウンドロビン方式でサービス要求先スケジューラを切り替え，分散させることができます。RPCごとにサービス要求先スケジューラを分散させる場合は，TP1/Client/J環境定義にdcscdhostchange=Yを指定します。

2.2.9　ネームサービスを使用したRPC

ネームサービスを使用したRPCは，JavaアプリケーションおよびJavaサーブレットから実行できるサービス要求です。Javaアプレットのセキュリティの制約があるため，Javaアプレットからは実行できません。

ネームサービスを使用したRPCの流れと，RPCごとにサービス要求先スケジューラを分散させる場合の定義について説明します。

＜この項の構成＞

(1)　ネームサービスを使用したRPCの流れ

(2)　RPCごとにサービス要求先スケジューラを分散させる場合の定義

(3)　マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義

(1)　ネームサービスを使用したRPCの流れ

ネームサービスを使用したRPCを行う場合は，TP1/Client/J環境定義にdcnamuse=Yを指定します。さらに，TP1/Client/J環境定義にdchostオペランド，およびdcnamportオペランドを指定するか，またはsetDchostメソッドでnamサーバを指定します。また，rpcCallメソッドを呼び出す前にはrpcOpenメソッドを呼び出す必要があります。CUPの最後にはrpcCloseメソッドを呼び出す必要があります。

ネームサービスを使用した場合のサービス要求の流れを次の図に示します。

図2-7　ネームサービスを使用した場合のサービス要求の流れ

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

rpcCallメソッドを呼び出して該当するSPPにサービス要求をする。※

rpcCloseメソッドを呼び出してRPC環境を解放する。

注※

rpcCallメソッド内部の処理の流れを次に示します。

dchostオペランドおよびdcnamportオペランドで定義されたnamサーバに対してコネクションを確立する。

サービス情報を取得するための要求を送信し，namサーバとの間に確立したコネクションを解放する。

namサーバから応答メッセージ送信用のコネクション確立要求を受信後，コネクションを確立しサービス情報を受信する。

namサーバとのコネクションを解放し，namサーバからの応答メッセージのサービス情報を基に，サービスを実行しているTP1/Server上のscdサーバに対してコネクションを確立する。

scdサーバとのコネクションの確立後，サービス要求を送信しコネクションを切断する。

SPPから応答メッセージ送信用のコネクション確立要求を受信後，コネクションを確立し応答メッセージを受信する。

SPPとの間で確立したコネクションを解放する。

なお，この機能の使用時は，ソケット受信型SPPに対してRPCを発行できません。また，TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドに2以上を指定した場合，ネームサービスを使用したRPCは，システム共通定義のrpc_max_message_sizeオペランドをサポートするTP1/Server上で稼働しているサービスの情報だけを取得します。サービスの入力パラメタ長が，サービス要求先のシステム共通定義のrpc_max_message_sizeオペランドの値を超える場合もサービス要求は実行されます。システム共通定義のrpc_max_message_sizeオペランドをサポートしないTP1/Server上のSPPに対してはRPCを発行できません。

(2)　RPCごとにサービス要求先スケジューラを分散させる場合の定義

ネームサービスを使用したRPCでは，サービス要求先スケジューラの情報をネームサーバからキャッシュに格納し，キャッシュの情報を参照してRPCごとにサービス要求先スケジューラを分散させることができます。RPCごとにサービス要求先スケジューラを分散させる場合のTP1/Client/J側，TP1/Server側の関連する定義について説明します。

(a)　TP1/Client/J側の定義

RPCごとにサービス要求先スケジューラを分散させる場合は，TP1/Client/J環境定義にdccltloadbalance=Yを指定します。

これによって，TP1/Client/Jは，ネームサーバから複数のサービス要求先スケジューラの情報を取得し，負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納します。キャッシュに格納されるサービス要求先スケジューラは，一つだけではなく，複数の場合もあります。

キャッシュに格納されたサービス要求先スケジューラが複数ある場合，最初のサービス要求先スケジューラは，ランダムに選択されます。RPCでのサービス要求が2度目以降の場合は，サービス要求先スケジューラの情報を取得するためにキャッシュを参照し，RPCごとにラウンドロビン方式でサービス要求先スケジューラを切り替え，分散させます。

キャッシュの有効期限の指定

TP1/Client/J環境定義のdccltcachetimオペランドで，サービス要求先スケジューラの情報を保持する，キャッシュの有効期限を指定できます。

キャッシュにサービス要求先スケジューラの情報を格納したあとで，キャッシュの有効期限を満了した場合，そのサービス要求先スケジューラの情報を破棄します。その後，サービス要求先スケジューラの情報を再度取得して，その情報をキャッシュに格納することで，キャッシュを更新します。

TP1/Client/J環境定義のdccltcachetimオペランドは，TP1/Client/J環境定義にdccltloadbalance=Yを指定した場合だけ有効になります。

(b)　TP1/Server側の定義

次に示すTP1/Server側の定義のオペランドを指定すると，ネームサーバからサービス要求先スケジューラの情報を取得するときに，スケジューラの負荷情報も同時に取得します。

スケジュールサービス定義

scd_announce_server_status=Y（デフォルト）※1

ユーザサービス定義，またはユーザサービスデフォルト定義

loadcheck_interval

levelup_queue_count※2

leveldown_queue_count※2

注※1

このオペランドにNを指定した場合，スケジューラの負荷レベルは常にLEVEL0（負荷が低い状態）となります。負荷レベルが常にLEVEL0のスケジューラが，TP1/Client/Jのサービス要求先スケジューラとなった場合，実際の負荷状態に関係なく，常にサービス要求先スケジューラとして選択されます。

注※2

スケジューラの負荷レベルがサービス要求の滞留数で決まる方式とする場合に指定します。

(3)　マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義

ネームサービスを使用したRPCでは，通信先TP1/Serverがマルチホームドホスト形態の場合に通信障害が発生することがあります。これは，CUPが存在するネットワークから，通信先TP1/Serverのシステム共通定義のmy_hostオペランドで指定したホスト名（IPアドレス）に対応するネットワークアダプタに通信できないことが原因です。

これを回避するためには，TP1/Client/J環境定義にdccltnammlthost=Yを指定します。ネットワークの構成例を次の図に二つ示し，それぞれのネットワーク構成でのTP1/Client/J環境定義のdccltnammlthostオペランドの要否を示します。

図2-8　マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の例

ネットワーク構成例2のCUPがIPアドレス4と通信するには，TP1/Client/J環境定義にdccltnammlthost=Yの指定が必要です。この指定がない場合，CUPとIPアドレス4との間では通信障害が発生します。

通信先TP1/Serverがマルチホームドホスト形態で，かつ同じTP1/Server上にサービス要求先のSPPが存在しているときは，TP1/Client/J環境定義にdccltnammlthost=Yを指定することでRPCが行えるようになります。通信先TP1/Serverのシステム共通定義のall_nodeオペランドに，CUPが接続されていないネットワーク上に存在するTP1/Serverが指定されている場合，このTP1/Server上のSPPに対してRPCを行うと通信障害が発生します。なお，通信先TP1/Serverがマルチホームドホスト形態でない場合，TP1/Client/J環境定義のdccltnammlthostオペランドの指定に関係なくRPCを行えます。

2.2.10　通信先を指定したRPC

通信先を指定したRPCを使用すると，サービス要求を実行するサーバ（通信先のOpenTP1ノード）を明示的に指定できます。

通信先を指定したRPCを使用した場合，サービス要求を実行するサーバに指定した通信先のOpenTP1ノードでサービス要求が実行されます。指定したOpenTP1ノードが停止，または閉塞しているときでも，他OpenTP1ノードへの転送は行われません。また，ノード間負荷バランス機能は使用できません。

通信先を指定したRPCを使用するには，rpcCallToメソッドを呼び出します。rpcCallToメソッドは，DCRpcBindTblオブジェクトに格納されたホスト名にあるTP1/Serverのスケジュールサービスに対して直接サービス要求を実行します。

なお，この機能はリモートAPI機能を使用したRPCとの併用はできません。

通信先指定RPCを使用した場合のサービス要求の流れを次の図に示します。

図2-9　通信先指定RPCを使用したサービス要求の流れ

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

rpcCallToメソッドを呼び出してTP1/Serverのscdサーバを経由して目的のSPPにサービス要求をする。
通信先SPPの状態に関係なく，同一ノード内のSPPでサービス要求処理が行われます。
rpcCallToメソッドは，rpcOpenメソッドを呼び出してからrpcCloseメソッドを呼び出すまでの間，何回でも呼び出せます。

rpcCloseメソッドを呼び出してRPC環境を解放する。

なお，この機能の使用時は，ソケット受信型SPPに対してRPCを発行できません。また，TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してこの機能を使用した場合，通信先のTP1/Serverノードでエラーが発生することがあります。

2.2.11　同期応答型RPCタイムアウト時のサーバ負荷軽減

TP1/Client/JのCUPからrpcCallメソッドを呼び出すと，TP1/Serverではサービス要求を受け付けます。

この要求はSPPの実行待ち時間，実行時間，通信障害などによって，遅れる可能性があるため，TP1/Client/J側では応答待ち時間に上限を設けることで異常を監視しています。

一方TP1/Server側では，TP1/Client/Jの最大応答待ち時間を認識していないため，TP1/Client/J側でタイムアウトを検出していても，TP1/Server側ではサービスを処理し続けている場合があります。

同期応答型RPCタイムアウト時のサーバ負荷軽減機能を使用すると，TP1/Server側での上記のような不要な処理を軽減できます。同期応答型RPCタイムアウト時のサーバ負荷軽減機能を使用するかどうかは，TP1/Client/J環境定義のdcwatchtimrpcinheritオペランドで指定します。同期応答型RPCタイムアウト時のサーバ負荷軽減機能の処理概要を次の図に示します。

図2-10　同期応答型RPCタイムアウト時のサーバ負荷軽減機能の処理概要

2.2.12　ServerSocketを使用するRPC

TP1/Client/Jで，スケジューラダイレクト機能を使用したRPC，ネームサービスを使用したRPC，および通信先を指定したRPCを行う場合，ServerSocketを使用します。TP1/Client/Jを使用するクライアントプログラムを動作させるJava VMでセキュリティマネジャを適用する場合，TP1/Client/JのクラスライブラリがServerSocketの機能（connect，listen，およびaccept）を使用できるよう，適切なパーミッションをセキュリティポリシファイルに記述してください。Javaサーブレット，またはEJBの場合，これらコンテナを実装しているアプリケーションサーバ製品で，セキュリティの制約のためデフォルトでセキュリティマネジャを使用していることがあります。使用するアプリケーションサーバの仕様をご確認の上，適切に設定してください。

2.2.13　マルチスケジューラ機能を使用したRPC

CUPからスケジュールキューを使うSPP（キュー受信型サーバ）にサービスを要求した場合，要求先SPPがあるノードのスケジューラデーモンが，いったんサービス要求メッセージを受信し，該当するSPPのスケジュールキューに格納します。スケジューラデーモンとは，スケジュールサービスを提供するシステムデーモンのことです。

長大なサービス要求メッセージは，一定の長さに分割してスケジューラデーモンに送信します。スケジューラデーモンは，サービス要求メッセージを組み立ててキュー受信型サーバのスケジュールキューに格納します。スケジューラデーモンは，OpenTP1システムごとに1プロセスです。そのため，分割されたサービス要求メッセージの受信処理が完了するまで，スケジューラデーモンはほかのサービス要求メッセージを受信できません。通信速度が遅い回線を使用して，長大なサービス要求メッセージを送信した場合，ほかのサービス要求のスケジューリングが遅延することがあります。また，システムの大規模化，マシンやネットワークの高性能化などに伴って，効率良くスケジューリングできないことがあります。この場合，従来のスケジューラデーモンとは別に，サービス要求受信専用デーモンを複数プロセス起動し，サービス要求メッセージ受信処理を並行動作させることによって，スケジューリング遅延を回避できます。この機能をマルチスケジューラ機能といいます。以降，従来のスケジューラデーモンをマスタスケジューラデーモン，サービス要求受信専用デーモンをマルチスケジューラデーモンと呼びます。

マルチスケジューラ機能の検討が必要なシステム構成については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

＜この項の構成＞

(1)　マルチスケジューラデーモンをランダムに選択する方法

(2)　TP1/Client/J環境定義とサービス要求を送信するスケジューラデーモンの関連

(1)　マルチスケジューラデーモンをランダムに選択する方法

マルチスケジューラ機能を使用することで，複数起動されているマルチスケジューラデーモンの中から，利用できるマルチスケジューラデーモンをランダムに選択してサービス要求を送信できます。マルチスケジューラデーモンをランダムに選択して，スケジューラダイレクト機能，またはネームサービスを使用したRPCを実行できます。

(a)　スケジューラダイレクト機能を使用したRPC

TP1/Client/J環境定義dcscddirectオペランドにYを指定して，スケジューラダイレクト機能を使用したRPCを行う場合について説明します。

TP1/Client/Jでは，窓口となるTP1/Serverのネームサービスへ問い合わせないで，マルチスケジューラデーモンをランダムに選択できます。これによって通信回数が削減され，ネームサービスの負荷を軽減できます。

マルチスケジューラデーモンをランダムに選択するためには，TP1/Client/J環境定義のdchostオペランド，またはdcscdportオペランドに次のポート番号を指定します。

スケジュールサービス定義のscd_portオペランドに指定された，スケジュールサービスのポート番号

スケジュールサービス定義のscdmultiの-ｐオプションに指定されたポート番号

また，あらかじめTP1/Serverで起動しているマルチスケジューラデーモンのプロセス数を，TP1/Client/J環境定義のdcscdmulticountオペランドに指定しておく必要があります。サービス要求を送信するマルチスケジューラデーモンのポート番号は，次に示す範囲の値からランダムに選択されます。

下限値：TP1/Client/J環境定義のdchostオペランド，またはdcscdportオペランドに指定したポート番号の値

上限値：下限値 + TP1/Client/J環境定義のdcscdmulticountオペランドに指定したプロセス数 - 1

ただし，TP1/Client/J環境定義のdchostオペランドで指定した窓口となるTP1/Server間で，スケジュールサービス定義のscdmultiで指定した値を統一する必要があります。

(b)　ネームサービスを使用したRPC

マルチスケジューラ機能を使用して，ネームサービスを使用したRPCを行う場合について説明します。サービス情報を一時的に格納する領域に，該当するサービス情報がないときはネームサービスにサービス情報を問い合わせます。サービス情報を基にマルチスケジューラデーモンをランダムに選択してサービス要求を送信します。

(2)　TP1/Client/J環境定義とサービス要求を送信するスケジューラデーモンの関連

マルチスケジューラ機能を使用した場合，サービス要求を送信するスケジューラデーモンはTP1/Client/J環境定義の指定によって異なります。

スケジューラダイレクト機能を使用したRPCの場合の，TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連を次の表に示します。

表2-1　TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連（スケジューラダイレクト機能を使用したRPC）

TP1/Client/J環境定義のオペランドの指定 | サービス要求を送信するスケジューラデーモン
dcscddirect | dcscdmulti | dcscdmulticount
Y | Y | ○ | ランダムに選択したマルチスケジューラデーモン※
－ | TP1/Client/J環境定義のdchostオペランド，またはdcscdportオペランドに指定したポート番号で起動されているスケジューラデーモン
N | 無効 | TP1/Client/J環境定義のdchostオペランド，またはdcscdportオペランドに指定したポート番号で起動されているスケジューラデーモン

（凡例）

Y：オペランドの指定値がYである

N：オペランドの指定値がNである

○：オペランドに値を指定する

－：オペランドに値を指定しない

注※

マルチスケジューラデーモンのポート番号は，次に示す範囲の値から選択されます。

下限値：TP1/Client/J環境定義のdchostオペランド，またはdcscdportオペランドに指定したポート番号の値

上限値：下限値 + TP1/Client/J環境定義のdcscdmulticountオペランドに指定したプロセス数 - 1

ネームサービスを使用したRPCの場合の，TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連を次の表に示します。

表2-2　TP1/Client/J環境定義のオペランドの指定とスケジューラデーモンの関連（ネームサービスを使用したRPC）

TP1/Client/J環境定義のオペランドの指定 | サービス要求を送信するスケジューラデーモン
dcnamuse | dcscdmulti | dcscdmulticount
Y | Y | 無効 | サービス情報を基にランダムに選択したマルチスケジューラデーモン※
N | マスタスケジューラデーモン※

（凡例）

Y：オペランドの指定値がYである

N：オペランドの指定値がNである

注※

ネームサービスへの問い合わせが発生します。

2.3　トランザクション制御

この機能は，リモートAPI機能を使用する場合で，要求先TP1/Server Baseのバージョンが05-00以降のときだけ使用できます。

CUPからトランザクションを制御するメソッドを呼び出せます。この場合，トランザクションとして実行するSPPは，ユーザサービス定義にatomic_update=Yを指定しておく必要があります。

トランザクション制御の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

＜この節の構成＞

2.3.1　トランザクションの開始と同期点取得

2.3.2　同期点取得

2.3.3　リモートプロシジャコールの形態と同期点の関係

2.3.4　現在のトランザクションに関する識別子の取得

2.3.5　現在のトランザクションに関する情報の報告

2.3.6　障害発生時のトランザクションの同期点を検証する方法

2.3.7　TP1/Server側の定義の指定

2.3.1　トランザクションの開始と同期点取得

CUPからtrnBeginメソッドを呼び出して，トランザクションを開始します。

trnBeginメソッドを呼び出してから，同期点取得（コミット）までが，グローバルトランザクションの範囲です。trnBeginメソッドを呼び出したあと，そのグローバルトランザクションの中で新たなtrnBeginメソッドは呼び出せません。CUPからSPPへRPCを実行すると，CUPはルートトランザクションブランチとなり，RPC先のSPPはトランザクションブランチとして実行されます。TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定した場合のトランザクションとRPCの関係を次の図に示します。

図2-11　トランザクションとRPCの関係（dcrapautoconnectオペランドにYを指定した場合）

2.3.2　同期点取得

＜この項の構成＞

(1)　コミット

(2)　ロールバック

(3)　ヒューリスティック発生時の処置

(4)　トランザクションの処理時間について

(5)　トランザクションブランチの統計情報取得タイプについて

(1)　コミット

トランザクションが正常終了したときの同期点取得（コミット）は，CUPからコミット要求のメソッドを呼び出して行います。グローバルトランザクションは，すべてのトランザクションブランチが正常に終了したことで正常終了となります。

(a)　連鎖，非連鎖モードのコミット

トランザクション処理の同期点取得には，一つのトランザクションの終了後，同期点を取得して次のトランザクションを続けて起動する連鎖モードのコミットと，トランザクションの終了で同期点を取得したあと，新たなトランザクションを起動しない非連鎖モードのコミットがあります。

連鎖モードのコミットは，trnChainedCommitメソッドを呼び出して要求します。

非連鎖モードのコミットは，trnUnchainedCommitメソッドを呼び出して要求します。

トランザクションの連鎖，非連鎖モードを次の図に示します。

図2-12　トランザクションの連鎖，非連鎖モード

(b)　コミット要求のメソッドを呼び出さない場合の処理

コミット要求のメソッドを呼び出さないでCUPが終了したとき，またはコミット要求のメソッドを呼び出す前にCUPが異常終了したときは，トランザクションはロールバックされます。

(2)　ロールバック

(a)　TP1/Serverの処理がエラーの場合

トランザクションでエラーが発生すると，コミット要求のメソッドがエラーリターンされます。そのトランザクションは部分回復対象としてロールバックされます。グローバルトランザクション内のどれか一つのトランザクションブランチでエラーが発生した場合でも，グローバルトランザクション全体がロールバックの対象となります。このときTP1/Serverは，トランザクションブランチをロールバック対象とみなして，部分回復処理をします。

TP1/Serverの処理でエラーが発生した場合のトランザクションのロールバックを，次の図に示します。

図2-13　トランザクションのロールバック（TP1/Serverの処理でエラーが発生した場合）

(b)　ロールバック要求のメソッドの呼び出し

トランザクションをCUPの判断でロールバックしたいときは，CUPからロールバック要求のメソッドを呼び出します。

ロールバックには，連鎖モードのロールバックと非連鎖モードのロールバックがあります。

連鎖モードのロールバックは，trnChainedRollbackメソッドを呼び出して要求します。trnChainedRollbackメソッドを呼び出してロールバックすると，このメソッドを呼び出したCUPのプロセスは，ロールバック処理後も，グローバルトランザクションの範囲内にあります。

非連鎖モードのロールバックは，trnUnchainedRollbackメソッドを呼び出して要求します。trnUnchainedRollbackメソッドを呼び出してロールバックすると，このメソッドを呼び出したCUPのプロセスは，ロールバック処理後，グローバルトランザクションの範囲外となります。

ロールバック要求のメソッドを呼び出した場合のトランザクションのロールバックを，次の図に示します。

図2-14　トランザクションのロールバック（ロールバック要求のメソッドを呼び出した場合）

(3)　ヒューリスティック発生時の処置

トランザクション処理でヒューリスティックが発生すると，CUPの同期点取得時にエラーリターンされます。この場合の例外について次に示します。

ヒューリスティック決定の結果が，グローバルトランザクションの同期点の結果と一致しなかった場合 … ErrHeuristicException

障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果が判明しない場合 … ErrHazardException

これらの例外が返される原因，およびグローバルトランザクションの同期点の結果については，TP1/Serverのメッセージログファイルを参照してください。

ヒューリスティック発生時の処置の詳細については，マニュアル「OpenTP1 プログラム作成の手引」を参照してください。

(4)　トランザクションの処理時間について

トランザクションに関する，次に示す時間をTP1/Client/J環境定義で指定できます。詳細については「5.2　TP1/Client/J環境定義の詳細」を参照してください。

トランザクションブランチ限界経過時間

トランザクションブランチの監視時間に，監視対象のトランザクションブランチが，RPC機能を使ってほかのトランザクションブランチを呼び出し，その処理が終わるのを待つ時間を含むかどうか

トランザクション問い合わせ間隔最大時間

トランザクションブランチCPU監視時間

(5)　トランザクションブランチの統計情報取得タイプについて

トランザクションブランチごとに取得するトランザクション統計情報の取得タイプを，TP1/Client/J環境定義で指定できます。詳細については「5.2　TP1/Client/J環境定義の詳細」を参照してください。

2.3.3　リモートプロシジャコールの形態と同期点の関係

＜この項の構成＞

(1)　同期応答型RPCと同期点の関係

(2)　非応答型RPCと同期点の関係

(1)　同期応答型RPCと同期点の関係

同期応答型RPCのトランザクション処理の場合，CUPに処理結果が戻って，同期点処理を終えた時点で，トランザクションの終了となります。

同期応答型RPCと同期点の関係を次の図に示します。

図2-15　同期応答型RPCと同期点の関係

(2)　非応答型RPCと同期点の関係

非応答型RPCのトランザクション処理の場合は，CUPとSPPの処理終了で同期を取ります。

非応答型RPCと同期点の関係を次の図に示します。

図2-16　非応答型RPCと同期点の関係

2.3.4　現在のトランザクションに関する識別子の取得

CUPからgetTrnIDメソッドを呼び出すと，現在のトランザクショングローバル識別子，およびトランザクションブランチ識別子を取得できます。

障害が発生した場合，CUPから開始したトランザクションがコミットされたかどうかを調べるために，トランザクショングローバル識別子が必要になります。障害に備えて，次に示すメソッドを呼び出したあとには，必ずgetTrnIDメソッドを呼び出してください。

trnBeginメソッド

trnChainedCommitメソッド

trnChainedRollbackメソッド

2.3.5　現在のトランザクションに関する情報の報告

CUPからtrnInfoメソッドを呼び出すと，TP1Clientオブジェクトがトランザクションとして稼働中かどうかを，戻り値で確認できます。

2.3.6　障害発生時のトランザクションの同期点を検証する方法

CUPから開始したトランザクションで障害が発生した場合，そのトランザクションブランチがコミットされたかどうかを検証できます。この場合，トランザクション開始後に，必ずgetTrnIDメソッドを呼び出して，現在のトランザクショングローバル識別子，およびトランザクションブランチ識別子を取得しておく必要があります。

CUPで取得しておいたトランザクショングローバル識別子と，TP1/Server側のメッセージログファイルに出力されるトランザクションの結果を突き合わせると，CUPから開始したトランザクションがコミットされたかどうか検証できます。

TP1/Serverのメッセージログファイルの内容は，logcatコマンドで表示できます。logcatコマンドについては，マニュアル「OpenTP1 運用と操作」を参照してください。

障害発生時のトランザクションの同期点を検証する方法を次の図に示します。

図2-17　障害発生時のトランザクションの同期点を検証する方法

CUPからtrnBeginメソッドを呼び出してトランザクションが開始されると，TP1/Serverはそのトランザクションのトランザクショングローバル識別子をTP1/Client/Jに通知します。

CUPはgetTrnIDメソッドを呼び出して，トランザクショングローバル識別子を取得します。

取得したトランザクショングローバル識別子を表示します。

CUPで障害が発生し，TP1/Server側でタイムアウトが発生すると，トランザクションの処理結果がTP1/Serverのメッセージログファイルに出力されます。

3.で表示したトランザクショングローバル識別子とメッセージログファイルの内容を検証します。

2.3.7　TP1/Server側の定義の指定

TP1/Client/JとTP1/Server間でトランザクション連携をする場合，TP1/Serverの定義にrpc_extend_functionオペランドを指定するときは次のとおりにしてください。

ユーザサービスデフォルト定義のrpc_extend_functionオペランドは，00000002ビットをONにしないでください。00000002ビットがONになっている場合，動作を保証できません。

ユーザサービスデフォルト定義のrpc_extend_functionオペランドで00000002ビットがONになっている場合，rapリスナーサービス定義のrpc_extend_functionオペランドで00000002ビットがOFFになるように定義し，rapdfgenコマンドでrapリスナー用ユーザサービス定義，およびrapサーバ用ユーザサービス定義を再作成してください。再作成後，rapリスナー，およびrapサーバを再起動してください。

2.4　TCP/IP通信機能

TP1/Client/JのTCP/IP通信機能は，CUPがクライアント型かサーバ型かによって通信方法が異なります。CUPがクライアント型の場合は，CUPから定義や引数で指定した通信相手に対してコネクションを確立して通信します。CUPがサーバ型の場合は，定義で指定したポートで通信相手がコネクションを確立してくるのを待って通信します。コネクション確立後は，引数で指定した領域に対してデータの送受信を行います。

注意

TCP/IP通信機能を使用することによってMHPと通信できるようになるため，ここでは，通信する相手システムを「MHP」と呼んでいますが，相手システムはMHPに限らず，ユーザが自由に選択できます。

TCP/IP通信機能を使用したメッセージの送受信には次に示す3種類があります。

CUPからMHPへのメッセージの一方送信

MHPからCUPへのメッセージの一方受信

MHPとCUPとの間でのメッセージの送受信

＜この節の構成＞

2.4.1　メッセージの一方送信

2.4.2　メッセージの一方受信

2.4.3　メッセージの送受信

2.4.4　受信メッセージの組み立て機能

2.4.5　TCP/IP通信機能を使用するときの注意事項

2.4.1　メッセージの一方送信

CUPからMHPへ一方的にメッセージを送信できます。これをメッセージの一方送信といいます。

CUPからcltSendメソッドを実行して，MHPへメッセージを送信します。

メッセージを一方送信するには，あらかじめ，TP1/Client/J環境定義で次に示す指定をしておく必要があります。

dcsndhostオペランドにMHPが存在するノードのホスト名を指定

dcsndportオペランドにMHPのポート番号（MCF通信構成定義の定義コマンドmcftalccnのportnoオペランドで指定したポート番号）を指定

dcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDを指定

メッセージの一方送信を次の図に示します。

図2-18　メッセージの一方送信

MHPが起動されたあと，CUPを起動し，cltSendメソッドを実行します。

cltSendメソッドを発行したときに，MHPからコネクションが解放されていた場合，CUPに例外ErrNetDownExceptionを返します。

再びメッセージを一方送信するには，cltSendメソッドを実行します。

2.4.2　メッセージの一方受信

MHPから送信されたメッセージをCUPで受信できます。これをメッセージの一方受信といいます。

CUPは，cltReceiveメソッドを実行して，MHPからのメッセージをTCP/IPプロトコルを使用して受信します。

TCP/IPプロトコルでは，一つのメッセージを複数のパケットに分割したり，複数のメッセージを一つのパケットに詰め込んだりします。そのため，受信したメッセージの切れ目は，ユーザが指定するメッセージ長で判断します。ユーザはメッセージ長を含めた固定長のヘッダを最初に受信し，ヘッダに含まれているメッセージ長を指定して実際のメッセージを受信してください。

指定したメッセージ長よりも短いメッセージを受信した場合，TP1/Client/Jは，メッセージが分割されているものとみなし，指定した長さ分のメッセージを受信するまで，CUPに制御を戻しません。タイムアウトやエラーが発生したときに，指定した長さ分のメッセージに満たない場合でも，その時点までのメッセージを受信できます。ただし，それ以降のメッセージの組み立ては，ユーザの責任で行ってください。

メッセージを一方受信するには，あらかじめ，TP1/Client/J環境定義で次に示す指定をしておく必要があります。

dcrcvportオペランドにCUPのポート番号（MCF通信構成定義の定義コマンドmcftalccnのoportnoオペランドで指定したポート番号）を指定

dcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVを指定

メッセージの一方受信を，次の図に示します。

図2-19　メッセージの一方受信

MHPがコネクションの確立要求を再試行している間にCUPを起動し，cltReceiveメソッドを実行します。再試行中にコネクションを確立できなかった場合，mcftactcnコマンドを入力してコネクションを確立します。

MHPからコネクションが解放された場合，CUPに例外ErrConnfreeExceptionを返します。

再びメッセージを一方受信するには，cltReceiveメソッドを実行します。この場合，mcftactcnコマンドを入力して，コネクションを確立してください。

障害発生時のメッセージの一方受信を，次の図に示します。

図2-20　メッセージの一方受信（障害発生時）

2.4.3　メッセージの送受信

CUPとMHPとの間で，メッセージを送受信できます。

CUPからcltSendメソッドを実行してMHPへメッセージを送信し，CUPからcltReceiveメソッドを実行して，MHPからのメッセージを受信します。

メッセージを送受信するには，あらかじめ，TP1/Client/J環境定義で次に示す指定をしておく必要があります。

MHPがサーバ型の場合

dcsndhostオペランドにMHPが存在するノードのホスト名を指定

dcsndportオペランドにMHPのポート番号（MCF通信構成定義の定義コマンドmcftalccnのportnoオペランドで指定したポート番号）を指定

dcsndrcvtypeオペランドにDCCLT_SNDRCVを指定

MHPがクライアント型の場合

dcrcvportオペランドにCUPのポート番号（MCF通信構成定義の定義コマンドmcftalccnのoportnoオペランドで指定したポート番号）を指定

dcsndrcvtypeオペランドにDCCLT_SNDRCVを指定

メッセージの一方受信時，および一方送信時は，それぞれ別のコネクションを使用して，メッセージを受信，および送信しますが，メッセージ送受信時は，同じコネクションを使用してメッセージを送受信します。

メッセージの送受信を次の図に示します。

図2-21　メッセージの送受信

2.4.4　受信メッセージの組み立て機能

受信メッセージの組み立て機能は，送受信メッセージの先頭4バイトをメッセージ長エリアにしてTCP/IP通信をします。通信相手がTP1/NET/TCP/IPの受信メッセージの組み立て機能を使用している場合にこの機能を使用すると，CUPでメッセージ長エリアを意識しないで通信できます。

＜この項の構成＞

(1)　メッセージ送信

(2)　メッセージ受信

(1)　メッセージ送信

CUPがcltAssemSendメソッドでメッセージを送信すると，TP1/Client/Jはメッセージの先頭に4バイトのメッセージ長エリアを付加して相手システムに送信します。TP1/Client/Jが付加するメッセージ長は，ネットワークバイトオーダーで設定します。cltAssemSendメソッドを使用するには，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定してください。

(2)　メッセージ受信

CUPがcltAssemReceiveメソッドでメッセージの受信要求をすると，TP1/Client/Jは受信したメッセージの先頭4バイトをメッセージ長として，メッセージを組み立てまたは分割してCUPに通知します。メッセージ長として設定されている値は，ネットワークバイトオーダーとして処理します。送信元の相手システムは，メッセージ長をネットワークバイトオーダーで設定してください。cltAssemReceiveメソッドを使用するには，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定してください。

2.4.5　TCP/IP通信機能を使用するときの注意事項

TCP/IP通信機能を使用する場合の注意事項について説明します。

＜この項の構成＞

(1)　メッセージ送信時の注意事項

(2)　メッセージ受信時の注意事項

(1)　メッセージ送信時の注意事項

(a)　障害発生時のメッセージの消失

次に示す障害が発生すると，TP1/Client/J，およびMHPでは，メッセージが消失したことを検出できません。したがって，ユーザはメッセージ中に通番を付けるなどして，障害に備えてください。

ソケットのバッファにTP1/Client/Jが送信したメッセージが書き込まれて送信が正常終了した直後に，通信障害が発生したり，コネクションが解放されたりした場合

TP1/Client/Jが送信したメッセージがMHPの受信バッファに書き込まれる直前に通信障害が発生したり，コネクションが解放されたりした場合

(b)　コネクションの確立

TP1/Client/Jがクライアントとなり，MHPにメッセージを送信します。そのため，TP1/Client/JからMHPに対して，コネクションを確立します。MHPがTP1/NET/TCP/IPを使用している場合，コネクションはサーバ型となります。

(2)　メッセージ受信時の注意事項

(a)　障害発生時のメッセージの消失

次に示す障害が発生すると，TP1/Client/J，およびMHPでは，メッセージが消失したことを検出できません。したがって，ユーザはメッセージ中に通番を付けるなどして，障害に備えてください。

ソケットのバッファにMHPが送信したメッセージが書き込まれて送信が正常終了した直後に，通信障害が発生したり，コネクションが解放されたりした場合

MHPが送信したメッセージがTP1/Client/J側の受信バッファに書き込まれる直前に通信障害が発生したり，コネクションが解放されたりした場合

(b)　受信するメッセージの確認

任意のMHPからのメッセージを受信できます。そのため，コネクションの確立要求を受けると，その要求を無条件に受諾してメッセージを受信します。ユーザは，メッセージ識別子が含まれたヘッダをメッセージ中に含めるなどして，CUPが受け取るメッセージかどうかを確認してください。

(c)　メッセージ長

メッセージは，TCP/IPプロトコルを使用して受信します。TCP/IPプロトコルでは，一つのメッセージを複数のパケットに分割したり，複数のメッセージを一つのパケットに詰め込んだりします。そのため，受信したメッセージの切れ目は，ユーザが指定するメッセージ長で判断します。ユーザはメッセージ長を含めた固定長のヘッダを最初に受信し，ヘッダに含まれているメッセージ長を指定して，実際のメッセージを受信してください。

指定したメッセージ長より短いメッセージを受信した場合，TP1/Client/Jは，メッセージが分割されているものとみなします。そのため，指定した長さ分のメッセージを受信するまで，CUPに制御を戻しません。

(d)　コネクションの確立

TP1/Client/Jがサーバとなり，MHPからのメッセージを受信します。そのため，MHPからTP1/Client/Jに対して，コネクションを確立します。MHPがTP1/NET/TCP/IPを使用している場合，コネクションはクライアント型となります。

2.5　サーバからの一方通知受信機能

サーバからクライアントへの一方通知メッセージの受信機能について説明します。

＜この節の構成＞

2.5.1　一方通知受信機能の処理の流れ

2.5.2　一方通知連続受信機能の処理の流れ

2.5.3　一方通知連続受信機能を使用するときの注意事項

2.5.4　一方通知受信待ち状態の解除

2.5.1　一方通知受信機能の処理の流れ

一方通知受信機能を使用すると，オンライン開始の合図をクライアント側に一斉配布する，従来メインフレームのOLTPでの端末一斉起動と同様な運用ができるようになります。

一方通知受信機能を使用する場合，acceptNotificationメソッドを実行します。これによって，クライアント側ではサーバの状態（起動・未起動）に関係なくサーバ側からの送信メッセージをメソッドに指定した時間中待ち続けます。サーバ側で起動時にメッセージを送信することによって，クライアント側はサーバ起動を検出し，これを契機にユーザ業務（CUP）を開始できます。

一方通知受信機能の処理の流れを次の図に示します。

図2-22　一方通知受信機能の処理の流れ

2.5.2　一方通知連続受信機能の処理の流れ

一方通知連続受信機能を使用すると，openNotificationメソッドを実行してからcloseNotificationメソッドを実行するまでの間は，サーバ側からの一方通知メッセージを連続して受信できます。この機能を利用すると，クライアント側がサーバ側から送信される一方通知メッセージを受信できる状態になっていない場合にサーバ側から一方通知メッセージを送信しても，エラーリターンしません。その場合は，クライアント側が一方通知メッセージを受信するacceptNotificationChainedメソッドを実行した時点で，待ち受けキューからメッセージを取り出すことができます。

一方通知連続受信機能の処理の流れを次の図に示します。

図2-23　一方通知連続受信機能の処理の流れ

一方通知メッセージが送られてくるのを待ちます。

TP1/Serverが起動し，クライアント業務が実行できる状態になったことを，一方通知メッセージを送信して通知します。サーバからの一方通知メッセージは，TCP/IPの待ち受けキューに格納されます。

TCP/IPの待ち受けキューに一方通知メッセージが届いたため，一方通知メッセージを取り出して，CUPに制御を戻します。

acceptNotificationChainedメソッドの発行時に，TCP/IPの待ち受けキューにサーバからの一方通知メッセージが届いていたため，一方通知メッセージを取り出してCUPに制御を戻します。

2.5.3　一方通知連続受信機能を使用するときの注意事項

TCP/IPの待ち受けキューに保留できるメッセージの数には上限があります。この数は，JavaVMの上限値に依存します。上限値を超えるメッセージが到着した場合，サーバ側で実行したdc_rpc_cltsend関数は，DCRPCER_SERVICE_NOT_UPでエラーリターンします。

2.5.4　一方通知受信待ち状態の解除

acceptNotificationメソッドまたはacceptNotificationChainedメソッドを発行し，サーバからの一方通知受信待ち状態となったCUPが，別のCUPからキャンセル通知を受信した場合，一方通知受信待ち状態を解除します。キャンセル通知は，cancelNotificationメソッドを発行することで送信できます。一方通知受信待ち状態を解除する処理の流れを次の図に示します。

図2-24　一方通知受信待ち状態を解除する処理の流れ

2.6　TP1/Web接続機能

TP1/Web接続機能は，Javaアプレットとして作成したCUPとTP1/Webを接続して，HTTPプロトコルに基づいた通信サービスをするための機能です。

TP1/Webと接続することによって，HTTPプロトコルでの通信では本来できなかったセションの関連づけができるようになり，連続した対話的業務を行えます。

TP1/Webと接続するには，openConnectionメソッドを使用します。openConnectionメソッドの詳細については，「4.　TP1/Client/Jで使用するクラス」を参照してください。

なお，TP1/Web接続機能を使用した場合，トランザクション制御機能は使用できません。また，TP1/Client/J環境定義のdccltrpcmaxmsgsizeオペランドを指定してTP1/Web接続機能を使用した場合，通信先のTP1/Serverノードでエラーが発生することがあります。

＜この節の構成＞

2.6.1　TP1/Webとの接続（セションの開始）

2.6.2　TP1/Webへのサービス要求

2.6.3　TP1/Webとの接続解除（セションの終了）

2.6.4　TP1/Webと連携したRPC機能

2.6.1　TP1/Webとの接続（セションの開始）

TP1/Webとの接続（セション）は，openConnection(String url, short flags)メソッドを呼び出すことによって開始されます。セションは，closeConnection()を呼び出すまで継続されます。

セションを開始する方法には，次に示す3種類があります。

TP1/Client/J環境定義でdcweburlオペランドにサービス要求先のURLを，dcrapautoconnectオペランドにYを指定して，rpcOpenメソッドを呼び出したあとで，rpcCallメソッドを呼び出す。TP1/Webとのセションは，TP1/Client/Jが自動的に確立する。

TP1/Client/J環境定義でdcweburlオペランドにサービス要求先のURLを指定して，rpcOpenメソッドを呼び出したあとで，引数なしのopenConnectionメソッドを呼び出す。

TP1/Client/JのAPIのopenConnection(String url, short flags)メソッドを呼び出す。

2.6.2　TP1/Webへのサービス要求

TP1/Webへのサービス要求は，rpcCallメソッドを呼び出すことで行われます。

TP1/WebのJava to SPPゲートウェイ機能（DC_JGW機能）を使用する場合は，TP1/Webが，rpcCallメソッドで送信されたメッセージを基に，バックエンドのOpenTP1上のSPPに対してサービス要求を行います。OpenTP1のSPPから応答されたメッセージはTP1/WebからHTTPプロトコルで応答します。

TP1/WebのJava to ユーザサービス機能（DC_JUSR機能）を使用する場合は，TP1/Web上で動作しているユーザサービスを呼び出せます。TP1/Web上で動作しているユーザサービスでは，ユーザが自由に処理を記述できます。応答はTP1/WebがHTTPプロトコルで返します。

TP1/Client/Jが提供するTP1/Web接続機能を使用する場合のサービス要求の形態には，同期応答型および連鎖型の2種類があります。ただし，連鎖型はTP1/Webのスタティックセションスケジュール機能を使用し，DC_JGW機能を使用した場合にだけ使用できます。

同期応答型および連鎖型の詳細については，「2.2.3　RPCの形態」を参照してください。

＜この項の構成＞

(1)　同期応答型

(2)　連鎖型

(1)　同期応答型

TP1/Client/Jを使用したCUP（Javaアプレット）からTP1/Webに問い合わせメッセージを送信し，応答メッセージを受け取る形態です。同期応答型RPCでは，CUPがTP1/Webからの応答を受け取るまで，それに引き続く処理は待たされます。

(2)　連鎖型

TP1/Client/Jを使用したCUP（Javaアプレット）からTP1/Webに問い合わせメッセージを送信し，応答メッセージを受け取る形態です。連鎖型RPCでは，CUPがTP1/Webからの応答を受け取るまで，それに引き続く処理は待たされます。連鎖型RPCを使用する場合は，TP1/Webの設定がスタティックセションスケジュール機能で，かつ，openConnectionメソッドで要求したTP1/WebのサービスセットはDC_JGWでなければなりません。

2.6.3　TP1/Webとの接続解除（セションの終了）

TP1/Webとの接続は，closeConnectionメソッドを呼び出すことで解除されます。

closeConnectionメソッドを受信したTP1/Webは，接続しているクライアントとのセションを終了し，TP1/Webのリソースを解放します。

2.6.4　TP1/Webと連携したRPC機能

TP1/Client/Jから利用できるTP1/Webのサービスセットを次に示します。

Java to SPPゲートウェイ機能（DC_JGW機能）

Java toユーザサービス機能（DC_JUSR機能）

各サービスセットの詳細については，マニュアル「TP1/Web 使用の手引」を参照してください。

TP1/Webと連携したRPC機能のサービス要求の流れを図2-25～図2-29に示します。

図2-25　dcrapautoconnect=Yを指定した場合の連携

dcrapautoconnect=Yを指定した場合，次のような流れになります。

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

rpcCallメソッドを呼び出して該当するSPPにサービス要求を行う。
rpcCallメソッド内部では，次のように処理される。
dcrapautoconnect=Yなので，まずdcweburlオペランドに定義されたTP1/WebのCGIプロセスに対してセションを開始する。次に，サービス要求メッセージを送信する。

rpcCloseメソッドを呼び出してRPC環境を解放する（セションを終了する）。

図2-26　dcrapautoconnect=Nを指定し，dcweburlオペランドを定義した場合の連携

dcrapautoconnect=Nを指定し，dcweburlオペランドを定義した場合，次のような流れになります。

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

rpcOpenメソッドを呼び出してCUPのRPC環境を初期化する。

引数なしのopenConnectionメソッドを呼び出してdcweburlで定義されたTP1/WebのCGIプロセスに対してセションを開始する。

rpcCallメソッドを呼び出して該当するSPPにサービス要求を行う。

rpcCloseメソッドを呼び出してRPC環境を解放する（セションを終了する）。

図2-27　URLを指定したopenConnectionメソッドを使用する場合の連携

URLを指定したopenConnectionメソッドを使用する場合，次のような流れになります。

TP1/Client/Jが提供するTP1Clientクラスのインスタンスを作成する。

URLを指定したopenConnectionメソッドを呼び出してTP1/WebのCGIプロセスに対してセションを開始する。

rpcCallメソッドを呼び出して該当するSPPにサービス要求を行う。

rpcCloseメソッドを呼び出してRPC環境を解放する（セションを終了する）。

図2-28　DC_JGWサービスセットを使用した場合にサービスが実行される流れ

図2-29　DC_JUSRサービスセットを使用した場合にサービスが実行される流れ

2.7　動的定義変更機能

TP1/Client/Jは，TP1/Client/J環境定義をrpcOpenメソッド内で解析し，CUPに一意の情報として格納しています。

動的定義変更機能を使用すると，TP1/Client/J環境定義で定義しなかったオペランドの値を設定したり，TP1/Client/J環境定義で定義したオペランドの値を動的に変更したりできます。なお，動的定義変更メソッドを呼び出して変更したオペランドの値は，CUPが終了するまで（rpcCloseメソッドが呼び出されるまで）の間は，同じ動的定義変更メソッドを呼び出してオペランドの値を変更しないかぎり，変更されません。

TP1/Client/J環境定義の値と，動的定義変更機能で設定した値のどちらが有効になるかは，メソッドの呼び出し順序で決定します。

rpcOpenメソッドを呼び出したあとに動的定義変更メソッドを呼び出した場合

動的変更メソッドで変更したオペランドの値が有効になります。

動的定義変更メソッドを呼び出したあとにrpcOpenメソッドを呼び出した場合

TP1/Client/J環境定義で定義されているオペランドの値が有効になります。

2.8　TCP/IPコネクションの確立の監視機能

TCP/IPコネクションの確立の監視機能では，データ送信時のTCP/IPコネクションの確立処理に対する最大監視時間を指定し，コネクションの確立処理を監視できます。

コネクションの確立処理には，TP1/Client/JのAPI内部のJavaAPIであるjava.net.Socket.connectメソッド（以降「connectメソッド」と呼びます）が使用されます。connectメソッドのタイムアウト監視時間は，各プラットフォームで固有となっています。TP1/Client/J環境定義でコネクション確立処理に対する最大監視時間を指定してコネクションの確立処理を監視すると，プラットフォーム固有のconnectメソッドのタイムアウト監視時間よりも短い時間でTP1/Client/JのAPIをエラーリターンさせることができます。connectメソッドでのコネクション確立処理に対する最大監視時間は，TP1/Client/J環境定義のdccltconnecttimeoutオペランドで指定します。

＜この節の構成＞

2.8.1　内部でconnectメソッドを使用するAPI

2.8.2　connectメソッドがタイムアウトした場合の例外

2.8.1　内部でconnectメソッドを使用するAPI

APIが内部でconnectメソッドを使用するかどうかは，TP1/Client/J環境定義のオペランドの指定によって異なります。内部でconnectメソッドを使用するAPI（メソッド）と，内部でconnectメソッドが使用されるTP1/Client/J環境定義のオペランドの条件を次の表に示します。条件が二つ以上あるAPI（メソッド）の場合，内部でconnectメソッドが使用されるには，一つ以上の条件を満たしている必要があります。

表2-3　内部でconnectメソッドを使用するAPI（メソッド）

項番
内部でconnectメソッドを使用するメソッド
内部でconnectメソッドが使用されるTP1/Client/J環境定義のオペランドの条件

1
cltAssemSend(byte[] buff, int sendleng, String hostname, int portnum, int timeout, int flags)

dcsndrcvtype=DCCLT_ONEWAY_SND

dcsndrcvtype=DCCLT_SNDRCV

2
cltSend(byte[] buff, int sendleng, String hostname, int portnum, int flags)

dcsndrcvtype=DCCLT_ONEWAY_SND

dcsndrcvtype=DCCLT_SNDRCV

3
openConnection(String host, int port)
dcrapdirect=Yかつdcrapautoconnect=N

4
openConnection()
dcrapdirect=Yかつdcrapautoconnect=N

5
rpcCall(String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)

dcscddirect=Y

dcnamuse=Y

または

dcrapdirect=Yかつdcrapautoconnect=Y

6
rpcCall(String group, String service, byte[] in_data, byte[] out_data, int flags)

7
rpcCallTo(DCRpcBindTbl direction, String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)

dcscddirect=Y

dcnamuse=Y

8
trnBegin()
dcrapdirect=Yかつdcrapautoconnect=Y

2.8.2　connectメソッドがタイムアウトした場合の例外

各プラットフォームで固有のconnectメソッドのタイムアウト監視時間が満了した場合と，dccltconnecttimeoutオペランドに指定した時間が満了した場合とでは，TP1/Client/JのAPIから返る例外が異なります。これは，満了する監視時間の違いが，connectメソッドで発生する例外に影響するためです。

dccltconnecttimeoutオペランドに，各プラットフォーム固有のタイムアウト監視時間よりも大きい値を指定した場合，各プラットフォーム固有のタイムアウト監視時間が先に満了します。このため，dccltconnecttimeoutオペランドの指定は無効となります。dccltconnecttimeoutオペランドの指定を省略した場合，connectメソッドのタイムアウト監視時間は，各プラットフォームで固有となります。

各プラットフォームで固有のconnectメソッドのタイムアウト監視時間が満了した場合と，dccltconnecttimeoutオペランドに指定した時間が満了した場合の，TP1/Client/JのAPIが返す例外を次の表に示します。

表2-4　connectメソッドがタイムアウトした場合にAPI（メソッド）が返す例外

項番 | メソッド | 各プラットフォーム固有※1 | dccltconnecttimeoutオペランド※2
1 | cltAssemSend(byte[] buff, int sendleng, String hostname, int portnum, int timeout, int flags) | ErrNetDownAtClientException | ErrClientTimedOutException
2 | cltSend(byte[] buff, int sendleng, String hostname, int portnum, int flags) | ErrNetDownAtClientException | ErrClientTimedOutException
3 | openConnection(String host, int port) | ErrNetDownAtClientException | ErrClientTimedOutException
4 | openConnection() | ErrNetDownAtClientException | ErrClientTimedOutException
5 | rpcCall(String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags) | ErrNetDownAtClientException | ErrClientTimedOutException
6 | rpcCall(String group, String service, byte[] in_data, byte[] out_data, int flags) | ErrNetDownAtClientException | ErrClientTimedOutException
7 | rpcCallTo(DCRpcBindTbl direction, String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags) | ErrConnRefusedException | ErrNetDownAtClientException
8 | trnBegin() | ErrConnRefusedException | ErrClientTimedOutException

注※1

各プラットフォームで固有のconnectメソッドのタイムアウト監視時間が満了した場合に発生する例外です。

注※2

dccltconnecttimeoutオペランドに指定した時間が満了した場合に発生する例外です。

2.9　DCCM3との接続機能

TP1/Client/Jでは，RPCやTCP/IP通信機能を使用して，VOS3やVOS1上のDCCM3と接続できます。

＜この節の構成＞

2.9.1　DCCM3とのRPC

2.9.2　DCCM3とのTCP/IP通信

2.9.3　DCCM3論理端末への端末識別情報の通知

2.9.1　DCCM3とのRPC

TP1/Client/Jでは，OpenTP1のサーバだけでなく，DCCM3のサーバともRPCを使用した通信ができます。DCCM3とRPCを行うには，DCCM3側に，OpenTP1のRPC要求を解釈する機能が組み込まれていることが前提です。次に示す製品をDCCM3側に組み込むことで，DCCM3ともRPCを使用した通信ができます。

DCCM3側の適用OSがVOS3の場合

DCCM3/Internet

DCCM3側の適用OSがVOS1の場合

DCCM3/SERVER/TP1

相手サーバがDCCM3の場合の特徴は次のとおりです。

使用できるRPCの形態は，同期応答型RPCと非応答型RPCです。連鎖型RPCは使用できません。

トランザクション制御機能は使用できません。

常設コネクションを使用してDCCM3論理端末へRPCを行う場合，負荷分散機能を使用できます。詳細については，「2.9.1(4)　DCCM3論理端末に対してRPCを行う場合の負荷分散」を参照してください。

DCCM3に対してRPCを行う場合，サービス名がトランザクション名称と評価されます。

＜この項の構成＞

(1)　相手サーバの指定方法

(2)　相手サーバのアドレス定義

(3)　RPCの実行手順

(4)　DCCM3論理端末に対してRPCを行う場合の負荷分散

(5)　TP1/Client/J環境定義の定義例

(6)　DCCM3論理端末に対してRPCを行う場合の注意事項

(1)　相手サーバの指定方法

DCCM3のサーバとRPCを使用した通信をする場合，相手サーバをサービスグループ名とサービス名で指定します。この指定方法はOpenTP1のサーバに対してRPCを行う場合と同じです。

サービスグループ名
サービスグループ名として不正でないダミーの文字列を指定します。1～31文字の識別子を指定してください。

サービス名
DCCM3側のトランザクション名称を指定します。使用できる文字は，アルファベット（A～Z，a～z）と数字（0～9）です。文字数の合計が1～8文字になるように指定してください。

(2)　相手サーバのアドレス定義

DCCM3のサーバとRPCを使用した通信をする場合，OpenTP1のネームサービスの管理外にあるサーバを呼び出すため，TP1/Client/J側でサービス名ごとに定義を分けて，サーバのアドレスを定義する必要があります。サーバのアドレスを定義するには，TP1/Client/J環境定義のdchostオペランドに，それぞれRPC受け付け窓口のホスト名およびポート番号を指定します。

(3)　RPCの実行手順

相手サーバのアドレスを定義したあとRPCを実行します。TP1/Client/J環境定義の指定内容によって次に示すようにRPCの実行手順は異なります。

(a)　dcrapautoconnectオペランドにYを指定した場合

rpcOpenメソッドを実行して，定義を読み込みます。

rpcCallメソッドを実行します。
TP1/Client/J環境定義のdchostオペランドで指定したRPC受け付け窓口に，コネクションが確立されます。コネクションの確立後，RPCが行われます。

(b)　dcrapautoconnectオペランドにNを指定した場合，または指定を省略した場合

rpcOpenメソッドを実行して，定義を読み込みます。

引数なしのopenConnectionメソッドを実行します。
TP1/Client/J環境定義のdchostオペランドで指定したRPC受け付け窓口に，コネクションが確立されます。

コネクションの確立後，rpcCallメソッドを実行してRPCを行います。

(c)　dchostオペランドで指定したサーバ以外と通信する場合

rpcOpenメソッドを実行して，定義を読み込みます。
この手順は省略できます。省略した場合でも，2.および3.は実行できます。

openConnectionメソッドの引数にRPC受け付け窓口（ホスト名およびポート番号）を指定して，openConnectionメソッド実行します。

コネクションの確立後，rpcCallメソッドを実行してRPCを行います。

(4)　DCCM3論理端末に対してRPCを行う場合の負荷分散

TP1/Client/JとDCCM3論理端末が常設コネクションを使用してRPCを行う場合，コネクション確立時に接続先を複数のDCCM3に振り分けて負荷を分散できます。TP1/Client/Jは，TP1/Client/J環境定義のdchostオペランドに指定された複数のDCCM3論理端末のホスト名およびポート番号の中から，接続先をランダムに選択し，接続を試みます。あるDCCM3論理端末との接続に失敗すると，それ以外のDCCM3論理端末から再びランダムに選択し，接続を試みます。この処理を繰り返し，TP1/Client/J環境定義のdchostオペランドに指定されたすべてのDCCM3論理端末との接続にすべて失敗したときに，初めてエラーを検知します。

TP1/Client/JとDCCM3論理端末とで通信する場合のAPIの実行順序には，次の2とおりがあります。

TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名およびポート番号を指定し，引数なしのopenConnectionメソッドを実行します。
この場合，常設コネクションを使用します。

TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名およびポート番号を指定し，dchostselectオペランドにYを指定します。
TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定した場合は，rpcCallメソッドを実行します。rpcCallメソッドを実行すると，コネクションが確立されていない場合は，自動でコネクションが確立されます。
TP1/Client/J環境定義のdcrapautoconnectオペランドにNを指定した場合，または指定を省略した場合は，引数なしのopenConnectionメソッドを実行します。引数なしのopenConnectionメソッドを実行すると，コネクションを確立します。

(5)　TP1/Client/J環境定義の定義例

次に示す図のように動く，DCCM3接続時のTP1/Client/J環境定義の定義例を示します。

図2-30　DCCM3のサーバとのRPC

TP1/Client/J環境定義で，各トランザクションを処理するサーバのアドレス（RPC受け付け窓口）を，定義ファイルを分けてdchostオペランドに定義します。

RPCを行うとき，定義ファイルからRPC受け付け窓口のアドレスを求め，RPCのメッセージを送信します。

RPCのメッセージを解釈し，要求されたサービスを実行します。

同期応答型RPCの場合，サーバからの応答メッセージを受信します。

定義ファイル"tran1.ini"の定義例

dcrapdirect=Y
dcwatchtim=180
dcrapautoconnect=Y
dchostselect=Y
#"TRAN1"のトランザクションを処理できるサーバのアドレスを定義
dchost=xxx.xxx.xxx.xxx:10020,zzz.zzz.zzz.zzz:10022

定義ファイル"tran2.ini"の定義例

dcrapdirect=Y
dcwatchtim=180
dcrapautoconnect=Y
dchostselect=Y
#"TRAN2"のトランザクションを処理できるサーバのアドレスを定義
dchost=yyy.yyy.yyy.yyy:10021,zzz.zzz.zzz.zzz:10022

上記のTP1/Client/J環境定義を使用したプログラム例を次に示します。

プログラム例

import JP.co.Hitachi.soft.OpenTP1.*;
public class DCCM3Caller
{
 ...
 public void Function1(){
   TP1Client clt = new TP1Client();

   // TRAN1のトランザクションを呼び出すRPC
   clt.rpcOpen("tran1.ini");
   ...
   // 同期応答型RPC
   clt.rpcCall("dummysvg", "TRAN1", ..., TP1Client.DCNOFLAGS);
   ...
   clt.rpcClose();

   // TRAN2のトランザクションを呼び出すRPC
   // 要求先のサーバアドレス取得のために定義を読み直す
   clt.rpcOpen("tran2.ini");
   ...
   // 非応答型RPC
   clt.rpcCall("dummysvg", "TRAN2", ..., TP1Client.DCRPC_NOREPLY);
   ...
   clt.rpcClose();
 }
}

(6)　DCCM3論理端末に対してRPCを行う場合の注意事項

リモートAPI機能を使用したRPCだけ使用できます。

連鎖型RPCは使用できません。

トランザクション制御機能は使用できません。

文字列のデータを含むメッセージを送受信する場合は，あらかじめメッセージ中の文字コードを通信先システムと決めた上で，必要に応じてUAPで文字コード変換を行ってください。Java上では，Unicodeが文字列データのメモリ上の内部表現として使用されます。

TP1/Client/J環境定義のdccltinquiretimeオペランドを指定しても無効になります。CUPからサーバに対する問い合わせ間隔最大時間は，DCCM3の「端末放置監視時間」で指定してください。

DCCM3側の注意事項については，マニュアル「VOS3 データマネジメントシステム XDM E2系 解説」およびマニュアル「VOS1 データコミュニケーションマネジメントシステム DCCM3 解説」を参照してください。

2.9.2　DCCM3とのTCP/IP通信

DCCM3論理端末とTCP/IP通信を行う場合の注意事項は次のとおりです。

文字列のデータを含むメッセージを送受信する場合は，あらかじめメッセージ中の文字コードを通信先システムと決めた上で，必要に応じてUAPで文字コード変換を行ってください。Java上では，Unicodeが文字列データのメモリ上の内部表現として使用されます。

2.9.3　DCCM3論理端末への端末識別情報の通知

常設コネクションを使用してDCCM3論理端末と通信する場合，端末識別情報をDCCM3論理端末に通知し，CUPに割り当てられるDCCM3の論理端末を固定することができます。

＜この項の構成＞

(1)　DCCM3論理端末でのメッセージ送受信方法

(2)　端末識別情報の通知

(3)　DCCM3論理端末に端末識別情報を通知する場合の注意事項

(1)　DCCM3論理端末でのメッセージ送受信方法

DCCM3論理端末では，通信相手となるTP1/Client/JをIPアドレスとDCCM3論理端末のポート番号で区別する論理端末として定義し，論理端末ごとにメッセージの送受信を行っています。

したがって，複数のCUPを同一マシンから起動した場合，どのCUPからの要求でも，DCCM3論理端末から見るとIPアドレスが同じになってしまいます。複数のCUPから同じDCCM3論理端末のポートにサービスを要求すると，DCCM3の定義では区別が付きません。そのため，該当するDCCM3の論理端末が複数定義されていた場合，DCCM3のどの論理端末にCUPが割り当てられるのかが不定になってしまいます。サービス要求を受け付けるDCCM3の論理端末が異なると，DCCM3側のサーバ処理の順番が保証されなくなるため，業務によっては問題となることがあります。

(2)　端末識別情報の通知

CUPがDCCM3論理端末と常設コネクションを確立するときに，端末識別情報をDCCM3論理端末に通知することで，CUPに割り当てられるDCCM3の論理端末を固定することができます。これを端末識別情報設定機能といいます。この機能を使用することで，CUPを常に同じDCCM3の論理端末に割り当てることができます。なお，DCCM3側では，この機能を端末固定割り当て機能といいます。

端末識別情報設定機能を使用していない場合と使用している場合のCUPとDCCM3論理端末の関係を，次の図にそれぞれ示します。

図2-31　CUPとDCCM3論理端末の関係（端末識別情報設定機能を使用していない場合）

図2-32　CUPとDCCM3論理端末の関係（端末識別情報設定機能を使用している場合）

端末識別情報設定機能は，次のどちらかの方法で使用できます。

方法1

TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を指定します。

TP1/Client/J環境定義のdchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定します。

setConnectInformationメソッドに端末識別情報を設定し，メソッドを呼び出します。

次のどちらかの方法でDCCM3論理端末との常設コネクションを確立します。
・ openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合，引数hostにDCCM3論理端末のホスト名，引数portにDCCM3論理端末のポート番号を指定します。
・ TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し，rpcCallメソッドを呼び出します。

方法2

TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を指定します。

TP1/Client/J環境定義のdchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定します。

TP1/Client/J環境定義のdccltconnectinfオペランドに端末識別情報を設定します。

次のどちらかの方法でDCCM3論理端末との常設コネクションを確立します。
・ openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合，引数hostにDCCM3論理端末のホスト名，引数portにDCCM3論理端末のポート番号を指定します。
・ TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し，rpcCallメソッドを呼び出します。

注意

TP1/Client/J環境定義のdccltconnectinfオペランドに端末識別情報を設定して，setConnectInformationメソッドに端末識別情報を設定した場合は，setConnectInformationメソッドの設定が有効になります。dccltconnectinfオペランドに設定した値は，setConnectInformationメソッドを呼び出したあと，再びrpcOpenメソッドを呼び出すまで無視されます。

(3)　DCCM3論理端末に端末識別情報を通知する場合の注意事項

端末固定割り当て機能を使用したDCCM3の論理端末名称と，TP1/Client/Jで定義した端末識別情報とが一致していない場合に，次のメソッドを呼び出したときはErrNetDownAtClientException例外を返します。

openConnectionメソッド

rpcCallメソッド（ただし，TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定した場合）

端末固定割り当て機能を使用したDCCM3の論理端末に対して，TP1/Client/Jで端末識別情報を設定しないで次のメソッドを呼び出した場合，ErrNetDownAtClientException例外を返します。

openConnectionメソッド

rpcCallメソッド（ただし，TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定した場合）

端末固定割り当て機能を使用していないDCCM3の論理端末に対して，TP1/Client/Jから端末識別情報を設定して常設コネクションの確立を要求した場合，DCCM3はTP1/Client/Jが設定した端末識別情報の設定内容を無視します。

TP1/Client/Jから端末識別情報を設定して，TP1/Serverのrapサーバと常設コネクションを確立する場合，rapサーバはTP1/Client/Jが設定した端末識別情報の設定内容を無視します。また，TP1/Client/Jがrapサーバを介してDCCM3へRPCを発行する場合，TP1/Client/Jで設定した端末識別情報はDCCM3に伝達されません。

端末識別情報は，リモートAPI機能を使用したRPCの場合だけ有効となります。ネームサービスを使用したRPC，またはスケジューラダイレクト機能を使用したRPCの場合は，端末識別情報を設定しても無視されます。

2.10　XAリソースサービス機能

XAリソースサービス機能を使用する場合，uCosminexus TP1 ConnectorまたはCosminexus TP1 Connectorが必要です。TP1/Client/J単体での動作は保証できません。ここでは，XAリソースサービス機能を使用した場合，TP1/Client/Jが使用できる機能について説明します。

TP1/Client/Jがサポートする通信方式を次の表に示します。

表2-5　通信方式別サポート一覧

TP1/Client/Jの通信方式 | リモートAPI機能を使用 | スケジューラダイレクト機能を使用 | ネームサービスを使用
サポート可否 | ○ | × | ×

（凡例）

○：サポートしています。

×：サポートしていません。

TP1/Client/Jがサポートするコネクトモードを次の表に示します。

表2-6　TP1/Client/Jがサポートするコネクトモード

コネクトモード | サポート可否
非オートコネクトモード | ×
オートコネクトモード | ○

（凡例）

○：サポートしています。

×：サポートしていません。

TP1/Client/JがサポートするRPCの呼び出し形態を次の表に示します。

表2-7　TP1/Client/JがサポートするRPCの呼び出し形態

RPCの呼び出し形態 | サポート可否
同期応答型RPC | ○
非同期応答型RPC | ○
連鎖型RPC | ○

（凡例）

○：サポートしています。

なお，TP1/Client/J環境定義のdchostオペランドに指定できる窓口となるTP1/Serverは一つだけです。複数指定した場合の動作は保証できません。

2.11　トラブルシュート機能

TP1/Client/Jは，トラブルシュート機能として，UAPトレース，データトレース，エラートレース，メモリトレース，メソッドトレース，デバッグトレース，性能解析トレース，および性能検証用トレースを取得できます。

UAPトレース，データトレース，エラートレース，およびメソッドトレースはファイルに出力されます。メモリトレースはCUPで用意したString型の配列に格納されます。デバッグトレースは，TP1/Client/Jのメモリ内に取得されます。また，TP1/Client/Jの提供するメソッドが例外を返した場合は，ファイルまたは標準出力に出力されます。性能解析トレースはCosminexus Application Server上で，性能検証用トレースはTP1/Server上で出力します。

Javaアプレットの場合，Javaのセキュリティの制約で，UAPトレース，データトレース，エラートレース，メソッドトレース，および性能検証用トレースは使用できません。また，性能解析トレースは取得できません。

Javaサーブレットの場合，使用するアプリケーションサーバによっては，セキュリティの制約で使用できないトレースがあります。Javaサーブレットのセキュリティの制約の詳細については，アプリケーションサーバのマニュアルを確認してください。

トレースを出力する場合，環境変数TZにタイムゾーンを設定してください。設定していないと，トレース情報の時刻が正しく出力されません。

＜この節の構成＞

2.11.1　トレースファイルの出力内容

2.11.2　UAPトレース

2.11.3　データトレース

2.11.4　エラートレース，メモリトレース

2.11.5　メソッドトレース

2.11.6　デバッグトレース

2.11.7　性能解析トレース

2.11.1　トレースファイルの出力内容

トレースファイルに指定できるオプションと出力ファイル名を次の表に示します。

表2-8　トレースファイルのオプションとファイル名

トレースファイル
オプション
ファイル出力先指定方法
出力ファイル名

UAPトレース

ファイル出力ディレクトリ

トレースファイルのサイズ

setUapTraceModeメソッドのTrcPath引数，またはdcuaptracepathオペランド
DCUAP1.TRC
DCUAP2.TRC

データトレース

ファイル出力ディレクトリ

トレースファイルのサイズ

データの最大サイズ

setDataTraceModeメソッドのTrcPath引数，またはdcdatatracepathオペランド
DCDAT1.TRC
DCDAT2.TRC

エラートレース

ファイル出力ディレクトリ

トレースファイルのサイズ

setErrorTraceModeメソッドのTrcPath引数，またはdcerrtracepathオペランド
DCERR1.TRC
DCERR2.TRC

メソッドトレース

ファイル出力ディレクトリ

トレースファイルのサイズ

setMethodTraceModeメソッドのTrcPath引数，またはdcmethodtracepathオペランド
DCMTD1.TRC
DCMTD2.TRC

指定したディレクトリがない場合，および指定したディレクトリに書き込み権限がない場合は，トレースファイルを出力できません。指定したファイル出力先ディレクトリに出力ファイル名のファイルがない場合は，該当するディレクトリにトレースファイルを作成します。ファイルへの書き込みは追加モードで実行されます。二つのトレースファイルはラウンドロビン方式で使用されます。指定したトレースファイルのサイズを超えた書き込みが発生すると，ファイルの切り替えを行い，次のファイルの先頭から書き込みを再開します。

複数のCUPのトレースファイルの出力先に同じディレクトリ指定すると，複数のCUPのトレース情報が混在し，トラブルシュートが困難になるため，トレースファイル出力先ディレクトリはそれぞれのCUPで別々にすることをお勧めします。また，一つのトレースデータの出力サイズによっては指定したトレースファイルのサイズよりファイルサイズが大きくなる場合があります。

2.11.2　UAPトレース

UAPトレース情報は，setUapTraceModeメソッドのTrcPath引数で指定したディレクトリ，またはTP1/Client/J環境定義のdcuaptracepathオペランドで指定したディレクトリに，DCUAP1.TRCおよびDCUAP2.TRCというファイル名で出力します。ファイルのサイズはsetUapTraceModeメソッドのsize引数，またはTP1/Client/J環境定義のdcuaptracesizeオペランドで指定します。

UAPトレースは，TP1/Client/Jが提供するメソッドの開始時と終了時に次の情報を取得します。

日付

時刻

実行スレッド名

呼び出したメソッド名

発生した例外

指定した引数の情報

呼び出したメソッドに関係する情報

送受信したデータの内容

なお，送受信データ長が60バイトを超える場合は先頭の60バイトを取得します。

UAPトレースファイルの出力形式を次に示します。

yyyy/mm/dd hh:mm:ss.uuu Location = lll ThreadName = ttt
MethodName = nnnnnnnnnnnnnnnnnnnn
Exception = eeeeeeeeeeeeeeeeeeee
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 73 61 69 73 70 70 00 00 00 00 00 00 00 00 00 00 saispp..........
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000020 73 61 69 73 76 72 30 31 00 00 00 00 00 00 00 00 saisvr01........
:         :        :

yyyy/mm/dd hh:mm:ss.uuu：UAPトレースを取得した日時

lll：出入口種別

ttt：実行スレッド名

nnnnnnnnnnnnnnnnnnnn：呼び出したメソッド名

eeeeeeeeeeeeeeeeeeee：発生した例外

ADDRESS以降の文字列：各種情報（指定した引数の情報，呼び出したメソッドに関係する情報，および送受信したデータの内容）

各種情報に出力する情報は，メソッドおよび取得するタイミングによって異なります。各メソッドの各種情報に出力する情報を次に示します。

表2-9　openConnection()メソッドおよびopenConnection(host,port)メソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
接続先ホスト名
0
0
64
引数で指定した接続先ホスト名。
引数を指定していないと，取得されません。その場合，領域はゼロクリアされます。

接続先ポート番号
40
64
4
引数で指定した接続先ポート番号。
引数を指定していないと，取得されません。その場合，-1が設定された状態で，UAPトレースが取得されます。

問い合わせ間隔最大時間
44
68
4
メソッドの実行時に使用した問い合わせ間隔最大時間の値。
TP1/Client/J環境定義のdccltinquiretimeオペランド，またはsetDccltinquiretimeメソッドで指定した問い合わせ間隔最大時間の値です。

最大応答待ち時間
48
72
4
メソッドの実行時に使用した最大応答待ち時間の値。
TP1/Client/J環境定義のdcwatchtimオペランド，またはsetDcwatchtimメソッドで指定した最大応答待ち時間の値です。

入力ストリームチェック間隔
4C
76
4
メソッドの実行時に使用した入力ストリームチェック間隔の値。
TP1/Client/J環境定義のdcselintオペランド，またはsetDcselintメソッドで指定した入力ストリームチェック間隔の値です。

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

表2-10　openConnection(url,flags)メソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
接続先URL
0
0
128
url引数で指定したTP1/WebのURL

オプションフラグ
0
0
2
openConnectionメソッドのflags引数で指定した値。次の値が設定されます。

DCSESSION 0x0001

最大応答待ち時間
0
0
4
setDcwatchtimメソッドで指定した最大応答待ち時間

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-11　rpcCallメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
サービスグループ名
0
0
32
呼び出すサービスのサービスグループ名

サービス名
20
32
32
呼び出すサービス名

送信データ長
40
64
4
送信データの長さ

送信データ
44
68
60
送信するデータ

受信データ長
80
128
4
受信するデータの長さ

オプションフラグ
84
132
4
rpcCallメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCRPC_NOREPLY 0x00000001

DCRPC_CHAINED 0x00000004

DCRPC_TPNOTRAN 0x00000020

最大応答待ち時間
88
136
4
メソッドの実行時に使用した最大応答待ち時間の値。
TP1/Client/J環境定義のdcwatchtimオペランド，またはsetDcwatchtimメソッドで指定した最大応答待ち時間の値です。

サーバ通信遅延時間
8C
140
4
メソッドの実行時に使用したサーバ通信遅延時間の値。
TP1/Client/J環境定義のdccltdelayオペランド，またはsetDccltdelayメソッドで指定したサーバ通信遅延時間の値です。リモートAPI機能を使用しない場合，0が設定されます。

入力ストリームチェック間隔
90
144
4
メソッドの実行時に使用した入力ストリームチェック間隔の値。
TP1/Client/J環境定義のdcselintオペランド，またはsetDcselintメソッドで指定した入力ストリームチェック間隔の値です。

出口※
受信データ長
0
0
4
受信した応答の長さ

受信データ
4
4
60
受信したデータ

性能解析トレースの識別情報
40
64
26
性能解析トレースの識別情報

注※

非応答型サービス要求の場合，出口情報は性能解析トレースの識別情報だけです。

表2-12　rpcCallToメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
接続先ホスト名
0
0
64
メソッドの実行時に使用した通信相手のホスト名。
DCRpcBindTblで指定した接続先ホスト名称です。

接続先ポート番号
40
64
4
メソッドの実行時に使用した通信相手のホストのポート番号。
DCRpcBindTblで指定した接続先ホストのポート番号です。

接続先オプションフラグ
44
68
4
rpcCallToメソッドの通信プロトコルフラグ

DCRPC_SCDPORT 0x00000002

サービスグループ名
48
72
32
呼び出すサービスのサービスグループ名

サービス名
68
104
32
呼び出すサービス名

送信データ長
88
136
4
送信データの長さ

送信データ
8C
140
60
送信するデータ

受信データ長
C8
200
4
受信するデータの長さ

オプションフラグ
CC
204
4
rpcCallToメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCRPC_NOREPLY 0x00000001

最大応答待ち時間
D0
208
4
メソッドの実行時に使用した最大応答待ち時間の値。
TP1/Client/J環境定義のdcwatchtimオペランド，またはsetDcwatchtimメソッドで指定した最大応答待ち時間の値です。

サーバ通信遅延時間
D4
212
4
メソッドの実行時に使用したサーバ通信遅延時間の値。
TP1/Client/J環境定義のdccltdelayオペランド，またはsetDccltdelayメソッドで指定したサーバ通信遅延時間の値です。リモートAPI機能を使用しない場合，0が設定されます。

入力ストリームチェック間隔
D8
216
4
メソッドの実行時に使用した入力ストリームチェック間隔の値。
TP1/Client/J環境定義のdcselintオペランド，またはsetDcselintメソッドで指定した入力ストリームチェック間隔の値です。

出口※
受信データ長
0
0
4
受信した応答の長さ

受信データ
4
4
60
受信したデータ

性能解析トレースの識別情報
40
64
26
性能解析トレースの識別情報

注※

非応答型サービス要求の場合，出口情報は性能解析トレースの識別情報だけです。

表2-13　closeConnectionメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
最大応答待ち時間
0
0
4
メソッドの実行時に使用した最大応答待ち時間の値。
TP1/Client/J環境定義のdcwatchtimオペランド，またはsetDcwatchtimメソッドで指定した最大応答待ち時間の値です。

入力ストリームチェック間隔
4
4
4
メソッドの実行時に使用した入力ストリームチェック間隔の値。
TP1/Client/J環境定義のdcselintオペランド，またはsetDcselintメソッドで指定した入力ストリームチェック間隔の値です。

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

表2-14　setDcwatchtimメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
最大応答待ち時間
0
0
4
最大応答待ち時間の値

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-15　setDccltinquiretimeメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
問い合わせ間隔最大時間
0
0
4
問い合わせ間隔最大の値

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-16　setDccltdelayメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
サーバ通信遅延時間
0
0
4
サーバ通信遅延時間の値

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-17　setDcselintメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
入力ストリームチェック間隔
0
0
4
入力ストリームチェック間隔の値

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-18　setDccltextendメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
拡張機能のレベル
0
0
4
TP1/Client/Jの機能の拡張レベル

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-19　setRpcextendメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
RPC拡張機能のレベル
0
0
4
TP1/Client/JのRPC機能の拡張レベル。
次の値の論理和が設定されます。

DCRPC_SCD_LOAD_PRIORITY 0x00000008

DCRPC_WATCHTIMINHERIT 0x00000010

DCRPC_RAP_AUTOCONNECT 0x00000020

DCRPC_WATCHTIMRPCINHERIT 0x00000040

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-20　setDchostメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
接続先ホスト名
0
0
64
host引数で指定したホスト名

接続先ポート番号
40
64
4
port引数で指定したポート番号

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-21　rpcOpenメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
TP1/Client/J環境定義ファイル名
0
0
256
deffilename引数で指定したTP1/Client/J環境定義ファイル名
引数を指定していないと，取得されません。その場合，領域はゼロクリアされます。

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-22　trnBeginメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
トランザクションブランチ限界経過時間
0
0
4
TP1/Client/J環境定義のdcclttrexptmオペランドで指定した値

トランザクションブランチCPU監視時間
4
4
4
TP1/Client/J環境定義のdcclttrcputmオペランドで指定した値

トランザクションブランチの監視時間の対象
8
8
1
TP1/Client/J環境定義のdcclttrexpspオペランドで指定した値

Y 89

N 78

F 70

統計情報取得項目
9
9
4
TP1/Client/J環境定義のdcclttrstatisitemオペランドで指定した値

base 0x80000000

executiontime 0x40000000

cputime 0x20000000

function 0x10000000

トランザクション最適化項目
D
13
4
TP1/Client/J環境定義のdcclttroptiitemオペランドで指定した値

nothing 0

base 0x00000003

asyncprepare 0x00000004

recursivemigrate 0x00000008

トランザクション同期点処理時の最大通信待ち時間
11
17
4
TP1/Client/J環境定義のdcclttrwatchtimeオペランドで指定した値

ロールバック情報取得の値
15
21
4
TP1/Client/J環境定義のdcclttrrbinfoオペランドで指定した値

no 0

self 0x00000001

remote 0x00000002

all 0x00000003

トランザクションブランチ最大実行可能時間の値
19
25
4
TP1/Client/J環境定義のdcclttrlimittimeオペランドの値

ロールバック完了通知の値
1D
29
4
TP1/Client/J環境定義のdcclttrrbrcvオペランドの値

Y 89

N 78

UAP障害時の同期点処理方式の値
21
33
4
TP1/Client/J環境定義のdcclttrrecoverytypeオペランドの値

type1 0x00000001

type2 0x00000002

type3 0x00000004

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

表2-23　trnInfoメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
トランザクション中フラグ
0
0
1

1 トランザクション中

0 トランザクション中ではない

（凡例）－：該当なし

表2-24　getTrnIDメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
トランザクショングローバル識別子
0
0
16
メソッドが正常終了の場合だけ取得されます。

トランザクションブランチ識別子
10
16
16
メソッドが正常終了の場合だけ取得されます。

（凡例）－：該当なし

表2-25　cltReceiveメソッドの各種情報

取得場所
項目
位置
長さ（バイト）
内容

16進数
10進数

入り口
受信データ長
0
0
4
受信するデータの長さ

タイムアウト設定時間
4
4
4
タイムアウト設定時間

オプションフラグ
8
8
4
cltReceiveメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCCLT_RCV_CLOSE 0x00000002

出口
受信データ長
0
0
4
受信した応答の長さ

受信データ
4
4
60
受信したデータ

表2-26　cltSendメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
送信データ
0
0
60
送信するデータ

送信データ長
3C
60
4
送信データの長さ

接続先ホスト名
40
64
64
hostname引数で指定した通信相手のホスト名

接続先ポート番号
80
128
4
portnum引数で指定した通信相手のポート番号

オプションフラグ
84
132
4
cltSendメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCCLT_SND_CLOSE 0x00000001

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-27　cltAssemSendメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
送信データ
0
0
60
送信するデータ

送信データ長
3C
60
4
送信データの長さ

接続先ホスト名
40
64
64
hostname引数で指定した通信相手のホスト名

接続先ポート番号
80
128
4
portnum引数で指定した通信相手のポート番号

タイムアウト設定時間
84
132
4
タイムアウト設定時間

オプションフラグ
88
136
4
cltAssemSendメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCCLT_SND_CLOSE 0x00000001

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-28　cltAssemReceiveメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
タイムアウト設定時間
0
0
4
タイムアウト設定時間

オプションフラグ
4
4
4
cltAssemReceiveメソッドのflags引数で指定した値。次のどれかの値が設定されます。

DCNOFLAGS 0x00000000

DCCLT_RCV_CLOSE 0x00000002

出口
受信データ長
0
0
4
受信した応答の長さ

受信データ
4
4
60
受信したデータ

表2-29　setConnectInformationメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
DCCM3論理端末の論理端末名称
0
0
64
inf引数で指定したDCCM3論理端末の論理端末名称

端末識別情報長
40
64
2
inf_len引数で指定した端末識別情報長

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-30　acceptNotificationメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
サーバからの通知メッセージを格納する領域の長さ
0
0
4
inf_len引数で指定した，サーバからの通知メッセージを格納する領域の長さ

サーバからの通知メッセージを受信するポート番号
4
4
4
port引数で指定した，サーバからの通知メッセージを受信するポート番号

タイムアウト値
8
8
4
timeout引数で指定した，タイムアウト値

出口
サーバからの通知メッセージ
0
0
60
inf引数に格納した，サーバからの通知メッセージ

サーバからの通知メッセージの長さ
3C
60
4
inf_len引数に格納した，サーバからの通知メッセージの長さ

サーバのホスト名
40
64
64
hostname引数に格納した，サーバのホスト名

サーバのノード識別子
80
128
8
nodeid引数に格納した，サーバのノード識別子

表2-31　cancelNotificationメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
CUPに通知するメッセージ
0
0
60
inf引数で指定した，CUPに通知するメッセージ

CUPに通知するメッセージの長さ
3C
60
4
inf_len引数で指定した，CUPに通知するメッセージの長さ

一方通知受信待ち状態のCUPのホスト名
40
64
64
hostname引数で指定した，一方通知受信待ち状態のCUPのホスト名

一方通知受信待ち状態のCUPのポート番号
80
128
4
port引数で指定した，一方通知受信待ち状態のCUPのポート番号

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-32　openNotificationメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
サーバからの通知メッセージを受信するポート番号
0
0
4
port引数で指定した，サーバからの通知メッセージを受信するポート番号

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-33　acceptNotificationChainedメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
サーバからの通知メッセージを格納する領域の長さ
0
0
4
inf_len引数で指定した，サーバからの通知メッセージを格納する領域の長さ

タイムアウト値
4
4
4
timeout引数で指定した，タイムアウト値

出口
サーバからの通知メッセージ
0
0
60
inf引数に格納した，サーバからの通知メッセージ

サーバからの通知メッセージの長さ
3C
60
4
inf_len引数に格納した，サーバからの通知メッセージの長さ

サーバのホスト名
40
64
64
hostname引数に格納した，サーバのホスト名

サーバのノード識別子
80
128
8
nodeid引数に格納した，サーバのノード識別子

表2-34　setUapTraceModeメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
UAPトレースを出力するディレクトリ
0
0
256
TrcPath引数で指定した，UAPトレースを出力するディレクトリ

出力するUAPトレースファイルのサイズ
100
256
4
size引数で指定した，出力するUAPトレースファイルのサイズ

UAPトレースの取得可否フラグ
104
260
4
flag引数で指定した，UAPトレースの取得可否フラグ（flag引数=trueの場合は1，flag引数=falseの場合は0が出力される）

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-35　setErrorTraceModeメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
エラートレースを出力するディレクトリ
0
0
256
TrcPath引数で指定した，エラートレースを出力するディレクトリ

出力するエラートレースファイルのサイズ
100
256
4
size引数で指定した，出力するエラートレースファイルのサイズ

エラートレースの取得可否フラグ
104
260
4
flag引数で指定した，エラートレースの取得可否フラグ(flag引数=trueでならば1，flag引数=falseならば0が出力される。)

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-36　setMethodTraceModeメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
メソッドトレースを出力するディレクトリ
0
0
256
TrcPath引数で指定した，メソッドトレースを出力するディレクトリ

出力するメソッドトレースファイルのサイズ
100
256
4
size引数で指定した，出力するメソッドトレースファイルのサイズ

メソッドトレースの取得可否フラグ
104
260
4
flag引数で指定した，メソッドトレースの取得可否フラグ（flag引数=trueの場合は1，flag引数=falseの場合は0が出力される）

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-37　setDataTraceModeメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
データトレースを出力するディレクトリ
0
0
256
TrcPath引数で指定した，データトレースを出力するディレクトリ

出力するデータトレースファイルのサイズ
100
256
4
size引数で指定した，出力するデータトレースファイルのサイズ

データトレースに出力するデータサイズ
104
260
4
DataSize引数で指定した，データトレースに出力するデータサイズ

データトレースの取得可否フラグ
108
264
4
flag引数で指定した，データトレースの取得可否フラグ（flag引数=trueの場合は1，flag引数=falseの場合は0が出力される）

出口
なし
－
－
－
－

（凡例）－：該当なし

表2-38　trnChainedCommitメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

（凡例）－：該当なし

表2-39　trnUnchainedCommitメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

（凡例）－：該当なし

表2-40　trnChainedRollbackメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

（凡例）－：該当なし

表2-41　trnUnchainedRollbackメソッドの各種情報

取得場所
項目
位置
長さ
（バイト）
内容

16進数
10進数

入り口
なし
－
－
－
－

出口
性能解析トレースの識別情報
0
0
26
性能解析トレースの識別情報

（凡例）－：該当なし

2.11.3　データトレース

データトレース情報は，setDataTraceModeメソッドのTrcPath引数で指定したディレクトリ，またはTP1/Client/J環境定義のdcdatatracepathオペランドで指定したディレクトリに，DCDAT1.TRCおよびDCDAT2.TRCというファイル名で出力されます。ファイルのサイズはsetDataTraceModeメソッドのsize引数，またはTP1/Client/J環境定義のdcdatatracesizeオペランドで指定します。1トレースのデータサイズはsetDataTraceModeメソッドのDataSize引数，またはTP1/Client/J環境定義のdcdatatracemaxsizeオペランドで指定します。

データトレースは，CUPとTP1/Server間の送受信メッセージの内容を取得します。

データトレースファイルへの出力形式を次に示します。

yyyy/mm/dd hh:mm:ss.uuu Event = eeee ThreadName = ttt
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 07 70 c0 00 00 00 00 5c 00 00 00 00 00 06 00 05 .p.....¥........
00000010 00 00 00 10 00 00 00 00 00 00 00 00 15 bf 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 01 01 00 ................
:         :        :

yyyy/mm/dd hh:mm:ss.uuu：データトレースを取得した日時

eeee：送受信種別

ttt：実行スレッド名

ADDRESS以降の文字列：データ

2.11.4　エラートレース，メモリトレース

エラートレース情報は，setErrorTraceModeメソッドのTrcPath引数で指定したディレクトリ，またはTP1/Client/J環境定義のdcerrtracepathオペランドで指定したディレクトリに，DCERR1.TRCおよびDCERR2.TRCというファイル名で出力されます。ファイルのサイズはsetErrorTraceModeメソッドのsize引数，またはTP1/Client/J環境定義のdcerrtracesizeオペランドで指定します。

エラートレースは，TP1/Client/Jが検知した障害をメッセージ形式でファイルに記録します。メソッド実行中に障害が発生した場合，その原因は例外として報告されますが，それだけでは原因を特定できない場合があります。エラートレースを取得すると，詳細なエラー情報がファイルに出力され，原因調査の資料として使用できます。

メモリトレースはエラートレースを取得できないJavaアプレットを使用しているときに，setTraceArrayメソッドで指定されたString配列にエラー情報を格納する機能です。障害発生時にString配列を参照するとエラー情報を取得できます。

エラートレースファイルの出力形式，またはメモリトレースのString配列への格納形式を次に示します。

(ttt)yyyy/mm/dd hh:mm:ss.uuu eeeeeeeeeeee

ttt：実行スレッド名

yyyy/mm/dd hh:mm:ss.uuu：エラートレースまたはメモリトレースを取得した日時

eeeeeeeeeeee：メッセージ

取得するメッセージを次の表に示します。

表2-42　エラートレース，メモリトレースで取得するメッセージ

メッセージの内容
意味

Invalid message received.
method=aaaaaaaa
TP1/Serverから不正なメッセージを受信しました。

aaaaaaaa：このメッセージを出力したメソッド名

メモリトレースの場合，このメッセージを出力したメソッド名に対応するコード

Error reply received.
inf=aaaaaaaa,
method=bbbbbbbb
TP1/Serverからエラー応答を受け取りました。

aaaaaaaa：受け取ったエラーコード

bbbbbbbb：このメッセージを出力したメソッド名

メモリトレースの場合，このメッセージを出力したメソッド名に対応するコード

Exception occured.
inf=aaaaaaaa,
exception=bbbbbbbb(cc...cc),
method=dddddddd
TP1Clientクラス内でJavaシステムから例外を受け取りました。またはTP1ClientクラスからJavaアプレット，Javaアプリケーション，またはJavaサーブレットに例外を返しました。

aaaaaaaa：例外が発生したときの保守情報

bbbbbbbb：Javaから受け取った例外名，またはJavaアプレット，Javaアプリケーション，またはJavaサーブレットに返した例外名

メモリトレースの場合，例外名に対応するコード

cc...cc：例外の詳細メッセージ

詳細メッセージがある場合だけ出力します。

dddddddd：このメッセージを出力したメソッド名

メモリトレースの場合，メソッド名に対応するコード

Invalid data received.
(aa...aa), method=bbbbbbbb
cltAssemReceiveメソッドで相手システムから不正なデータを受信しました。

aa...aa：不正なデータ

メッセージ長が不正な場合

receive message length=メッセージ長（10進数）

bbbbbbbb：このメッセージを出力したメソッド名

メモリトレースの場合，メソッド名に対応するコード

Receiving message was canceled.
aaaaaaaa　(bb...bb) method=cccccccc
cltAssemReceiveメソッドで相手システムから受信したメッセージを破棄しました。

aaaaaaaa：メッセージを破棄した原因

bb...bb：データの内容

受信バッファオーバーフローの場合

receive buffer overflowed.

(receive buffer size=受信バッファの大きさ（10進数）, receive message body length=受信メッセージ本体の長さ（10進数）)

cccccccc：このメッセージを出力したメソッド名

メモリトレースの場合，メソッド名に対応するコード

User data did not compress,
group=aa...aa,
service=bb...bb,
reason= cc...cc
ユーザデータを圧縮しませんでした。データを圧縮しないでサービスを要求します。

aa...aa：要求先サービスグループ名

bb...bb：要求先サービス名

cc...cc：ユーザデータを圧縮しなかった理由

NO EFFECT：ユーザデータに対する圧縮効果がありません。

NOT SUPPORT VERSION：サービス要求先のTP1/Serverがデータ圧縮機能をサポートしていないバージョンです。

「NO EFFECT」の場合，圧縮前より圧縮後のデータの方が大きくなります。そのため，同一のCUPでほかにもこのメッセージが出力されていないか確認し，CUP単位でデータ圧縮機能を使用するかどうかを再度検討してください。
「NOT SUPPORT VERSION」の場合，サービス要求先のTP1/Serverが，データ圧縮機能を使用できるバージョン（TP1/Server Base 03-03以降）かどうかを確認してください。

メモリトレースに出力されるコードとメソッド名の対応を次の表に示します。

表2-43　コードとメソッド名の対応

コード | メソッド名
1 | TP1Client.openConnection
2 | TP1Client.closeConnection
3 | TP1Client.rpcCall
4 | TP1Client.setDccltinquiretime
5 | TP1Client.setDccltdelay
6 | TP1Client.setDcwatchtim
7 | TP1Client.setDcselint
8 | TP1Client.setDccltextend
9 | TP1Client.rpcOpen
10 | TP1Client.rpcClose
11 | TP1Client.setRpcextend
12 | TP1Client.setDchost
13 | TP1Client.rpcCallTo
14 | TP1Client.trnBegin
15 | TP1Client.trnChainedCommit
16 | TP1Client.trnChainedRollback
17 | TP1Client.trnUnchainedCommit
18 | TP1Client.trnUnchainedRollback
19 | TP1Client.trnInfo
20 | TP1Client.getTrnID
37 | TP1Client.cltAssemSend
38 | TP1Client.cltAssemReceive
100 | TP1ClientSocketCommunicator.openConnection
101 | TP1ClientSocketCommunicator.closeConnection
102 | TP1ClientSocketCommunicator.sendData
103 | TP1ClientSocketCommunicator.sendData
104 | TP1ClientSocketCommunicator.recvData
105 | TP1ClientSocketCommunicator.recvData
106 | TP1ClientSocketCommunicator.recvDummyData
107 | TP1ClientSocketCommunicator.flush
108 | TP1ClientSocketCommunicator.recvSelect
109 | TP1ClientSocketCommunicator.openServerSocket
110 | TP1ClientSocketCommunicator.acceptServerSocket
111 | TP1ClientSocketCommunicator.closeServerSocket
112 | TP1ClientSocketCommunicator.getServerPort
113 | TP1ClientSocketCommunicator.getLocalIPAddress
114 | TP1ClientSocketCommunicator.getLocalPort
300 | TP1ClientProperties.TP1ClientProperties
301 | TP1ClientProperties.TP1ClientProperties
302 | TP1ClientProperties.getValue
400 | TP1ClientRpc.rpcOpen
401 | TP1ClientRpc.cltConnect
402 | TP1ClientRpc.rpcCall
403 | TP1ClientRpc.rpcClose
404 | TP1ClientRpc.cltDisconnect
405 | TP1ClientRpc.defAnalyze
406 | TP1ClientRpc.rapConnect
407 | TP1ClientRpc.rapDisconnect
408 | TP1ClientRpc.rapRpcCall
409 | TP1ClientRpc.scdRpcCall
410 | TP1ClientRpc.setDccltextend
411 | TP1ClientRpc.rapMngConnect
412 | TP1ClientRpc.rapMngDisconnect
413 | TP1ClientRpc.setRpcextend
414 | TP1ClientRpc.setDchost
415 | TP1ClientRpc.namRpcCall
416 | TP1ClientRpc.getHostEntry
417 | TP1ClientRpc.getNextEntry
500 | TP1ClientConManage.openMngConnection
501 | TP1ClientConManage.closeMngConnection
502 | TP1ClientConManage.changeMngConnection
503 | TP1ClientConManage.getConnection
504 | TP1ClientConManage.putConnection
505 | TP1ClientConManage.cancelConnection
506 | TP1ClientConManage.registCheck
507 | TP1ClientConManage.getMngConInfo
512 | TP1ClientConManage.getSync
513 | TP1ClientConManage.registConnNum
600 | TP1ClientConnectionHost.addTP1ClientConnectionHost
601 | TP1ClientConnectionHost.removeTP1ClientConnectionHost
602 | TP1ClientConnectionHost.removeTP1ClientConnectionHostAll
603 | TP1ClientConnectionHost.changeTP1ClientConnectionHost
604 | TP1ClientConnectionHost.getConnection
605 | TP1ClientConnectionHost.putConnection
606 | TP1ClientConnectionHost.addConnection
700 | TP1ClientNam.Lookup
900 | TP1ClientTrn.trnBegin
901 | TP1ClientTrn.trnChainedCommit
902 | TP1ClientTrn.trnChainedRollback
903 | TP1ClientTrn.trnUnchainedCommit
904 | TP1ClientTrn.trnUnchainedRollback
905 | TP1ClientTrn.conTrnCall
1001 | Socket.Socket
1002 | Socket.getInputStream
1003 | Socket.getOutputStream
1004 | Socket.close
1005 | DataInputStream.read
1006 | DataInputStream.available
1007 | DataInputStream.close
1008 | DataOutputStream.write
1009 | DataOutputStream.close
1010 | InetAddress.getLocalHost
1013 | InputStream.read
1014 | InputStream.close
1015 | OutputStream.write
1016 | OutputStream.close
1019 | Socket.setTcpNoDelay
1102 | TP1ClientSndRcv.cltAssemSend
1103 | TP1ClientSndRcv.cltAssemReceive

メモリトレースに出力されるコードと例外名の対応を次の表に示します。

表2-44　コードと例外名の対応

コード | 例外名
1 | ErrInvalidArgsException
2 | ErrProtoException
3 | ErrNoBufsException
4 | ErrNetDownException
5 | ErrTimedOutException
6 | ErrMessageTooBigException
7 | ErrReplyTooBigException
8 | ErrNoSuchServiceGroupException
9 | ErrNoSuchServiceException
10 | ErrServiceClosedException
11 | ErrServiceTerminatingException
12 | ErrServiceNotUpException
13 | ErrNotUpException
14 | ErrSyserrAtServerException
15 | ErrNoBufsAtServerException
16 | ErrSyserrException
17 | ErrInvalidReplyException
18 | ErrInitializingException
19 | ErrServerBusyException
20 | ErrTestmodeException
21 | ErrSecchkException
22 | ErrServiceTerminatedException
23 | ErrIOErrException
24 | ErrHostUndefException
25 | ErrInvalidPortException
26 | ErrConnfreeException
29 | ErrFatalException
30 | ErrSecurityException
31 | NumberFormatException
32 | EOFException
33 | FileNotFoundException
34 | SocketException
35 | InterruptedIOException
36 | ErrNotPoolingException
45 | ErrTrnchkException
76 | ErrServerTimedOutException
77 | ErrClientTimedOutException
78 | ErrNotTrnExtendException
79 | ErrTrnchkExtendException
80 | ErrNetDownAtServerException
81 | ErrNetDownAtClientException
84 | ErrInvalidMessageException
85 | ErrBufferOverflowException
86 | ErrCollisionMessageException
1001 | IOException
1002 | UnknownHostException

2.11.5　メソッドトレース

メソッドトレース情報は，setMethodTraceModeメソッドのTrcPath引数，またはTP1/Client/J環境定義のdcmethodtracepathオペランドで指定したディレクトリに，DCMTD1.TRCおよびDCMTD2.TRCというファイル名で出力します。ファイルのサイズはsetMethodTraceModeメソッドのsize引数，またはTP1/Client/J環境定義のdcmethodtracesizeオペランドで指定します。

TP1Clientクラス内では多くの内部メソッドが実行されます。メソッドトレースは，これらの内部メソッドの実行順序や実行時刻をファイルに出力します。Java環境では障害時に取得できる情報が少ないため，どのような内部処理の延長で障害が発生したかを原因調査の材料にします。

メソッドトレースファイルの出力形式を次に示します。

yyyy/mm/dd hh:mm:ss.uuu Location = lll ThreadName = ttt
MethodName = nnnnnnnnnnnnnnnnnnnn
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 00 00 00 00 c7 0b 49 17 00 00 00 00 00 06 00 05 ......|.........

yyyy/mm/dd hh:mm:ss.uuu：メソッドトレースを取得した日時

lll：出入口種別

ttt：実行スレッド名

ADDRESS以降の文字列：呼び出したメソッド名

2.11.6　デバッグトレース

デバッグトレース情報は，通常TP1/Client/J内のメモリバッファに取得され，例外を返した場合だけデバッグトレースファイルに出力します。デバッグトレースファイルは，Java VMを実行するユーザのホームディレクトリ下のTP1clientJディレクトリに，dcCltXXXXXXXXXXXX.dmp（XXXXXXXXXXXX：タイムスタンプ）というファイル名で出力します。

デバッグトレースファイルを出力する時点で，デバッグトレースファイルの総数が，TP1/Client/J環境定義のdccltdbgtrcfilecountオペランドで指定したファイル数を超える場合は，更新日時の最も古いファイルを削除します。デバッグトレースファイルの総数が，（dccltdbgtrcfilecountオペランドで指定したファイル数－1）となるまで既存のデバッグトレースファイルを削除します。

CUPをJavaアプレットとして動作させる場合，古いデバッグトレースファイルの削除に失敗した場合など，デバッグトレースをファイルに出力できないときは，標準出力に出力します。標準出力に出力された場合，ブラウザなどの機能でJavaコンソールを開けば，デバッグトレース情報を参照できます。

デバッグトレースの出力形式を次に示します。

(ttt)yyyy/mm/dd hh:mm:ss.uuu MethodName = nnnnnnnnnnnnnnnnnnnn(ii) Location = lll
ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f 0123456789abcdef
00000000 00 00 00 00 c7 0b 49 17 00 00 00 00 00 06 00 05 ......|.........

ttt：スレッドID

yyyy/mm/dd hh:mm:ss.uuu：デバッグトレースを取得した日時

nnnnnnnnnnnnnnnnnnnn：実行スレッド名

ii：インスタンスID

lll：出入口種別

ADDRESS以降の文字列：デバッグトレース情報

2.11.7　性能解析トレース

性能解析トレース（PRFトレース）情報とは，Cosminexus Application Serverのトレース情報です。性能解析トレースを取得すると，UAP実行時の，一連の処理の流れおよび処理に掛かった時間を知ることができ，性能解析に必要な情報を採取できます。また，障害が発生したときに，処理がどこまで到達したかを知ることができます。

性能解析トレースの概要および使用方法の詳細については，マニュアル「Cosminexus 機能解説」，マニュアル「Cosminexus システム運用ガイド」を参照してください。ここでは，TP1/Client/JをCosminexus Application Server上で動作させた場合の性能解析トレースの使用方法，性能解析トレースの取得情報，およびトレース取得ポイントについて説明します。

＜この項の構成＞

(1)　Cosminexus Application Serverでの性能解析トレースの出力

(2)　Cosminexus Application ServerとOpenTP1とのトレースの照合

(3)　性能解析トレースの取得情報

(4)　性能解析トレースのトレース取得ポイント

(5)　UAPトレースに出力される性能解析トレースの識別情報

(1)　Cosminexus Application Serverでの性能解析トレースの出力

TP1/Client/Jでは，TP1/Client/JをCosminexus Application Server上で動作させた場合に，Cosminexus Application Server上で性能解析トレースを出力できます。性能解析トレースは，TP1/Client/Jのトレース取得ポイントで取得されます。性能解析トレースを取得する場合は，TP1/Client/J環境定義にdccltprftrace=Yを指定します。

Cosminexus Application Server上で性能解析トレースを出力する場合，TP1/Client/Jが取得する情報の分だけ，出力される性能解析トレースのサイズが大きくなることを考慮して，性能解析トレースのサイズを指定してください。

(2)　Cosminexus Application ServerとOpenTP1とのトレースの照合

TP1/Serverに対して，ネームサービスを使用したRPC，およびスケジューラダイレクト機能を使用したRPCを行う場合は，スケジューラに送信するRPC電文中に，TP1/Client/Jのインスタンスごとにほぼ一意となる識別情報（IPアドレスなど）を付加できます。付加した情報は，OpenTP1の性能検証用トレースで出力します。このOpenTP1の性能検証用トレースと，Cosminexus Application Serverの性能解析トレースとを照合することによって，Cosminexus Application ServerとOpenTP1との間の，一連の処理の流れを知ることができます。また，バージョン07-02以降のTP1/Serverに対して，リモートAPI機能を使用したRPCを行う場合は，スケジューラに送信するRPC電文中への識別情報（IPアドレスなど）を付加できます。

OpenTP1の性能検証用トレースに識別情報を付加する場合は，TP1/Client/J環境定義にdccltprfinfosend=Yを指定します。OpenTP1の性能検証用トレースの詳細については，マニュアル「OpenTP1 解説」を参照してください。

(3)　性能解析トレースの取得情報

TP1/Client/Jで取得した情報は，性能解析トレースの付加情報部分に出力されます。性能解析トレースに取得する情報，およびトレースの出力例を次に示します。

性能解析トレースに取得する情報

ノードID：_Jaa（4バイトの英数字）

aa：ランダムな2文字の英数字（数字（0～9）またはアルファベット（A～Z，a～z））

ルート通信通番部分：bbbbbbbb（4バイトの16進数字）

bbbbbbbb：IPアドレス

RPC通信通番：ccccdddd（4バイトの16進数字）

cccc：ランダムな2バイトの16進数字

dddd：通信通番

Cosminexus Application Serverで性能解析トレースを出力する場合の出力例

...    OPT       ASCII
...    16進表示  _Jaa/0xbbbbbbbb/0xccccdddd...

OpenTP1の性能検証用トレースに識別情報を付加する場合の出力例

(4)　性能解析トレースのトレース取得ポイント

TP1/Client/Jの性能解析トレースの，トレース取得ポイントの詳細を，処理ごとに説明します。

(a)　rapリスナーとのコネクション確立，切断処理

rapリスナーとのコネクション確立，切断処理でのイベントID，トレース取得ポイント，付加情報および性能解析トレース取得レベルについて，次の表に示します。

表2-45　rapリスナーとのコネクション確立，切断処理でのトレース取得ポイントの詳細

イベントID | 図中の番号※1 | トレース取得ポイント | 付加情報※2 | レベル
0x9180 | 1 | rapリスナーへのコネクション確立処理前 | 要求先の情報（ホスト名，ポート番） | A
0x9181 | 2 | rapリスナーへのコネクション確立処理後（エラー時だけ取得） | 内部リターンコード | A
0x9182※3 | 3 | rapリスナーへの接続要求データの送受信後 | 内部リターンコード | A
0x9183 | 4 | rapリスナーへの切断要求データの送受信前 | － | A
0x9184 | 5 | rapリスナーへの切断要求データの送受信後 | 内部リターンコード | A

（凡例）

A：標準

－：該当なし

注※1

図2-33中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※3

コネクション確立処理がエラーとなってイベントID0x9181が取得された場合，このイベントIDのトレースは取得されません。

rapリスナーとのコネクション確立，切断処理でのトレース取得ポイントを次の図に示します。

図2-33　rapリスナーとのコネクション確立，切断処理でのトレース取得ポイント

(b)　リモートAPI機能でのAPI代理実行要求

リモートAPI機能でのAPI代理実行要求でのイベントID，トレース取得ポイント，付加情報および性能解析トレース取得レベルについて，次の表に示します。

表2-46　リモートAPI機能でのAPI代理実行要求でのトレース取得ポイントの詳細

イベントID | 図中の番号※1 | トレース取得ポイント | 付加情報※2 | レベル
0x9190 | 1 | dc_rpc_callの代理実行の要求処理前 | － | A
0x9191 | 2 | dc_rpc_callの代理実行の要求処理後 | 内部リターンコード | A
0x9192 | 1 | dc_trn_beginの代理実行の要求処理前 | － | A
0x9193 | 2 | dc_trn_beginの代理実行の要求処理後 | 内部リターンコード | A
0x9194 | 1 | dc_trn_chained_commitの代理実行の要求処理前 | － | A
0x9195 | 2 | dc_trn_chained_commitの代理実行の要求処理後 | 内部リターンコード | A
0x9196 | 1 | dc_trn_chained_rollbackの代理実行の要求処理前 | － | A
0x9197 | 2 | dc_trn_chained_rollbackの代理実行の要求処理後 | 内部リターンコード | A
0x9198 | 1 | dc_trn_unchained_commitの代理実行の要求処理前 | － | A
0x9199 | 2 | dc_trn_unchained_commitの代理実行の要求処理後 | 内部リターンコード | A
0x919A | 1 | dc_trn_unchained_rollbackの代理実行の要求処理前 | － | A
0x919B | 2 | dc_trn_unchained_rollbackの代理実行の要求処理後 | 内部リターンコード | A

（凡例）

A：標準

－：該当なし

注※1

図2-34中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

リモートAPI機能でのAPI代理実行要求でのトレース取得ポイントを次の図に示します。

図2-34　リモートAPI機能でのAPI代理実行要求でのトレース取得ポイント

(c)　スケジュールサーバへのRPC

スケジュールサーバへのRPCでのイベントID，トレース取得ポイント，付加情報および性能解析トレース取得レベルについて，次の表に示します。

表2-47　スケジュールサーバへのRPCでのトレース取得ポイントの詳細

イベントID | 図中の番号※1 | トレース取得ポイント | 付加情報※2 | レベル
0x91C0 | 1 | スケジュールサーバへのコネクション確立処理前 | サービス要求先ホストの情報（ホスト名，ポート番号） | A
0x91C1 | 2 | スケジュールサーバへのRPCのサービス要求処理の実行後 | 内部リターンコード | A
0x91C2※3 | 3 | SPPまたはスケジュールサーバからの応答データを受け取るコネクションの接続要求を受け付け後 | 内部リターンコード※4 | A
0x91C3 | 4 | ネームサーバへのコネクション確立処理前 | サービス要求先ホストの情報（ホスト名，ポート番号） | B
0x91C4 | 5 | ネームサーバへのサービス情報の問い合わせ処理の実行後 | 内部リターンコード | B
0x91C5※3 | 6 | ネームサーバからの応答データを受け取るコネクションの接続要求受け付け後 | 内部リターンコード※5 | B

（凡例）

A：標準

B：詳細

注※1

図2-35および図2-36中の番号と対応しています。

注※2

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※3

要求データの送信が正常終了した場合に，このイベントIDのトレースは取得されます。

注※4

SPPまたはスケジュールサーバからの応答データを受け取るコネクションの接続要求の受け付けが正常終了した場合は，接続元情報（IPアドレス，ポート番号）も付加します。

注※5

ネームサーバからの応答データを受け取るコネクションの接続要求の受け付けが正常終了した場合は，接続元情報（IPアドレス，ポート番号）も付加します。

スケジュールサーバへのRPC要求でのトレース取得ポイントを次の図に示します。

図2-35　スケジュールサーバへのRPC要求でのトレース取得ポイント

ネームサーバへのサービス情報の問い合わせでのトレース取得ポイントを次の図に示します。

図2-36　ネームサーバへのサービス情報の問い合わせでのトレース取得ポイント

(d)　API実行処理

API実行処理でのイベントID，トレース取得ポイント，付加情報および性能解析トレース取得レベルについて，次の表に示します。

表2-48　API実行処理でのトレース取得ポイントの詳細

イベントID | トレース取得ポイント | 付加情報※1 | レベル
0x91D0 | openConnectionメソッドの入り口 | － | A
0x91D1 | openConnectionメソッドの出口 | 内部リターンコード | A
0x91D2 | closeConnectionメソッドの入り口 | － | A
0x91D3 | closeConnectionメソッドの出口 | 内部リターンコード | A
0x91D4 | rpcCallメソッドの入り口 | inlen | A
0x91D5 | rpcCallメソッドの出口 | outlen，内部リターンコード | A
0x91D6 | rpcCallToメソッドの入り口 | inlen | A
0x91D7 | rpcCallToメソッドの出口 | outlen，内部リターンコード | A
0x91D8 | trnBeginメソッドの入り口 | － | A
0x91D9 | trnBeginメソッドの出口 | 内部リターンコード※2 | A
0x91DA | trnChainedCommitメソッドの入り口 | － | A
0x91DB | trnChainedCommitメソッドの出口 | 内部リターンコード※2 | A
0x91DC | trnChainedRollbackメソッドの入り口 | － | A
0x91DD | trnChainedRollbackメソッドの出口 | 内部リターンコード※2 | A
0x91DE | trnUnchainedCommitメソッドの入り口 | － | A
0x91DF | trnUnchainedCommitメソッドの出口 | 内部リターンコード | A
0x91E0 | trnUnchainedRollbackメソッドの入り口 | － | A
0x91E1 | trnUnchainedRollbackメソッドの出口 | 内部リターンコード | A

（凡例）

A：標準

－：該当なし

注※1

Cosminexus Application Serverの性能解析トレースに付加する情報です。

注※2

トランザクションの開始時は，トランザクショングローバル識別子，およびトランザクションブランチ識別子も付加します。

(5)　UAPトレースに出力される性能解析トレースの識別情報

TP1/Client/Jでは，TP1/ServerやCosminexusの性能解析トレースの情報と，TP1/Client/Jのトレースの情報を結び付けるために，UAPトレースの出口情報の末尾に，性能解析トレースの識別情報を出力します。

UAPトレースに性能解析トレースの識別情報を出力する，メソッドを次に示します。

openConnection()

openConnection(String host, int port)

closeConnection()

rpcCall(String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)

rpcCall(String group, String service, byte[] in_data, byte[] out_data, int flags)

rpcCallTo(DCRpcBindTbl direction, String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)

trnBegin()

trnChainedCommit()

trnUnchainedCommit()

trnChainedRollback()

trnUnchainedRollback()

なお，性能解析トレースの識別情報は，TP1/Client/J環境定義dccltprfinfosendオペランドの指定値に関係なく出力されます。

性能解析トレースの識別情報を出力した，UAPトレースの出力例を次に示します。太字で示す部分が，性能解析トレースの識別情報です。

2008/09/01 16:37:24.698  Location = Out  ThreadName = main
MethodName = TP1Client.rpcCall
Exception  =
ADDRESS   +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f  0123456789abcdef
00000000  00 00 00 1c 53 75 7a 75 6b 69 00 00 00 00 00 00  ....Suzuki......
00000010  00 00 00 00 00 00 00 00 00 00 00 00 51 00 00 00  ............Q...
00000020  5f 4a 30 6d 2f 30 78 30 61 64 31 30 66 37 63 2f  _J0m/0x0ad10f7c/
00000030  30 78 32 62 35 64 30 30 30 31                    0x2b5d0001

2.12　データ圧縮機能

データ圧縮機能を使用すると，RPCによってネットワーク上に送り出されるユーザデータを圧縮できます。これによってネットワーク上に送り出されるパケット数を削減し，ネットワークの混雑を緩和できます。

データ圧縮機能を使用するかどうかは，TP1/Client/J環境定義のdccltdatacompオペランドで指定します。

この機能を使用すると，TP1/Client/JはCUPから実行するrpcCallメソッドで設定する入力パラメタ（in_data）の値を，圧縮効果がある場合は圧縮してネットワーク上に送り出します。その問い合わせに対し，SPPから返される応答（out_data）の値もTP1/Serverで圧縮されてネットワーク上に送り出されてきます。その応答を受け取ったTP1/Client/Jは，圧縮データを復元してCUPに渡します。

データ圧縮機能の概要を次の図に示します。

図2-37　データ圧縮機能の概要

この機能は，サービス要求先のTP1/Serverが03-03以降※の場合に使用できます。また，RPCの通信形態，およびすべてのRPCインタフェースで使用できます。ただし，サービス要求先のTP1/Serverのバージョンによって，次の点が異なります。

TP1/Serverのバージョンが03-06未満の場合
入力パラメタの値が圧縮されていなかった場合，返される応答の値に圧縮効果があっても，応答の値はTP1/Serverで圧縮されません。

TP1/Serverのバージョンが03-06以降の場合
入力パラメタの値が圧縮されていなかった場合でも，返される応答の値に圧縮効果があれば，応答の値はTP1/Serverで圧縮されます。

注※

リモートAPI機能を使用したRPCの場合は，TP1/Serverのバージョンが03-05以降のときにデータ圧縮機能を使用できます。

また，uCosminexus TP1 ConnectorまたはCosminexus TP1 ConnectorからXAトランザクション連携機能を使用している場合は，TP1/Serverのバージョンが07-00以前のとき，データ圧縮機能を使用できません。

＜この節の構成＞

2.12.1　データ圧縮機能の効果

2.12.2　データ圧縮機能を使用するときの注意事項

2.12.1　データ圧縮機能の効果

データ圧縮機能の効果は，ユーザデータの内容に依存します。ユーザデータ中に連続した同じ文字が多く現れる場合には効果がありますが，ユーザデータの内容によっては，ほとんど効果がない場合もあります。

また，データ圧縮／復元のためのオーバヘッドが掛かるため，データ圧縮による効果とのバランスを考慮し，事前に性能評価をしてからデータ圧縮機能の使用を検討してください。

2.12.2　データ圧縮機能を使用するときの注意事項

データ圧縮機能を使用する場合の注意事項を次に示します。

スケジューラダイレクト機能を使用したRPCでサービス要求先のTP1/Serverのバージョンが03-03未満である場合，RPCを行ったときに，SPPのサービス関数に不正なデータを渡すおそれがあります。したがって，この場合，TP1/Serverに対して，データ圧縮機能を使用してサービスを要求しないでください（dccltdatacompオペランドにNを指定してください）。
なお，ネームサービス機能を使用したRPCでサービス要求先のTP1/Serverのバージョンが03-03未満である場合，データ圧縮機能を使用するように設定しても，この設定は無視されるためデータ圧縮機能は使用できません。

圧縮前より圧縮後のデータの方がデータが大きくなってしまう場合やサービス要求先のTP1/Serverがデータ圧縮機能をサポートしていない場合は，TP1/Client/Jのエラートレースファイルにデータを圧縮しなかった旨のメッセージが出力され処理は続行されます。この場合，データは圧縮されません。

DCCM3の論理端末に常設コネクションを確立しサービスを要求する場合，データ圧縮機能は使用できません。

rpcCallメソッドがエラーを返した場合のサービスの応答（out_data）は保証しません。

RPCメッセージの最大長（rpcCallメソッドで送受信できるユーザメッセージの最大長）は，データ圧縮機能の使用に関係なく，常にdccltrpcmaxmsgsizeオペランドで指定した値か，または省略時仮定値（1メガバイト）です。

uCosminexus TP1 ConnectorまたはCosminexus TP1 ConnectorからXAトランザクション連携機能を使用している場合で，通信相手のTP1/Serverのバージョンが07-00以前のとき，TP1/Client/Jではデータ圧縮機能を使用できません。通信相手のTP1/Serverのバージョンが07-00以前の場合にデータ圧縮機能を使用すると，KFCA32042-Wのメッセージが出力されることがあります。

2.13　送信元ホスト指定機能

TP1/Client/Jでは，RPCやTCP/IP通信機能でのコネクション確立要求時に，CUPの送信元ホストを指定できます。この機能を，送信元ホスト指定機能といいます。

CUPが動作するホスト上に，複数のネットワークアダプタが接続されている場合，CUPがこれらのコネクション確立要求時に使用する送信元ホストは，TCP/IPの制御で任意に決まります。しかし，送信元ホスト指定機能を使用すると，次のコネクション確立要求時の送信元ホストを固定できます。

スケジューラダイレクト機能を使用したRPC

ネームサービスを使用したRPC

リモートAPI機能を使用したRPC

通信先を指定したRPC

TCP/IP通信機能

CUPの送信元ホストは，TP1/Client/J環境定義のdccltcupsndhostオペランドで指定します。

送信元ホスト指定機能を使用しない場合と使用する場合について，次の図に示します。

図2-38　送信元ホスト指定機能を使用しない場合と使用する場合

2.14　受信ポート固定機能

TP1/Client/Jでは，スケジューラダイレクト機能を使用したRPCの受信ポート，およびネームサービスを使用したRPCの受信ポートを固定できます。この機能を，受信ポート固定機能といいます。

この機能は，TP1/ServerからTP1/Client/JへのRPCの応答通信をする場合で，TP1/ServerとTP1/Client/Jとの間に設置したファイアウォールでTP1/Client/Jの受信ポートにだけ通知を許可するようにフィルタリングしたいときに使用します。

この機能を使用する場合は，TP1/Client/J環境定義のdccltcuprcvportオペランドを指定します。

受信ポート固定機能を使用しない場合と使用する場合について説明します。

＜この節の構成＞

(1)　受信ポート固定機能を使用しない場合

(2)　受信ポート固定機能を使用する場合

(1)　受信ポート固定機能を使用しない場合

RPCの応答通信で，受信ポートに対するフィルタリングはありません。OSが，TP1/Client/JのRPCの受信ポートとして不定のポートを自動的に割り当てます。

受信ポート固定機能を使用しない場合について，次の図に示します。

図2-39　受信ポート固定機能を使用しない場合（スケジューラダイレクト機能を使用したRPC）

図2-40　受信ポート固定機能を使用しない場合（ネームサービスを使用したRPC）

(2)　受信ポート固定機能を使用する場合

RPCへの応答通信で許可する受信ポートを，TP1/Client/J環境定義のdccltcuprcvportオペランドで指定したポートとし，それ以外はフィルタリング対象にします。このため，不正なサービス要求に対するTP1/Serverからの応答通信を，ファイアウォールでフィルタリングできます。

受信ポート固定機能を使用する場合について，次の図に示します。

図2-41　受信ポート固定機能を使用する場合（スケジューラダイレクト機能を使用したRPC）

図2-42　受信ポート固定機能を使用する場合（ネームサービスを使用したRPC）

3.　プログラムインタフェース

TP1/Client/Jのプログラムインタフェースについて説明します。

＜この章の構成＞

3.1　API一覧

3.2　APIの使用方法

3.1　API一覧

TP1/Client/Jが使用するAPIの一覧を，次の表にそれぞれに示します。

表3-1　API一覧（パッケージ，クラス）

分類 | 名称 | 意味・機能
パッケージ | JP.co.Hitachi.soft.OpenTP1 | TP1/Client/Jのクラスのパッケージ名
クラス | TP1Client | TP1/Client/Jのクラス名
DCRpcBindTbl | DCRpcBindTblクラス

表3-2　API一覧（メソッド）

分類
メソッド
意味・機能

実行系
acceptNotification(byte[] inf,int[] inf_len,int port,int timeout,byte[] hostname,byte[] nodeid)
サーバ側の関数（dc_rpc_cltsend関数）で通知されるメッセージを受信する。

acceptNotificationChained(byte[] inf,int[] inf_len,int timeout,byte[] hostname,byte[] nodeid)

cancelNotification(byte[] inf,int inf_len,String hostname,int port)
サーバからの一方通知受信待ち状態（acceptNotificationメソッド，あるいはacceptNotificationChainedメソッドの発行）を解除する。

closeConnection()
CUPと，rapリスナーおよびrapサーバとの間に確立済みの常設コネクションを切断する。

closeNotification()
一方通知連続受信機能を使用するための環境を削除する。

cltAssemSend(byte[] buff, int sendleng, String hostname, int portnum, int timeout, int flags)
受信メッセージの組み立て機能を使用してメッセージを送信する。

cltAssemReceive(byte[] buff, int[] recvleng, int timeout, int flags)
受信メッセージの組み立て機能を使用してメッセージを受信する。

cltReceive(byte[] buff, int[] recvleng, int timeout, int flags)
MHPが送信したメッセージを受信する。

cltSend(byte[] buff, int sendleng, String hostname, int portnum, int flags)
MHPへメッセージを送信する。

getTrnID(byte[] gid, byte[] bid)
トランザクショングローバル識別子，トランザクションブランチ識別子を取得する。

openConnection()
rapサーバとの間に常設コネクションを確立するか，または，TP1/Webに接続して擬似セションを開始する。

openConnection(String host, int port)

openConnection(String url, short flags)

openNotification(int port)
一方通知連続受信機能を使用するための環境を作成する。

rpcCall(String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)
指定された「サービスグループ名＋サービス名」に対してRPCを行う。

rpcCall(String group, String service, byte[] in_data, byte[] out_data, int flags)

rpcCallTo(DCRpcBindTbl direction, String group, String service, byte[] in_data, int[] in_len, byte[] out_data, int[] out_len, int flags)
指定された通信先ノードの「サービスグループ名＋サービス名」に対してRPCを行う。

rpcClose()
TP1/ServerのSPPを呼び出すための環境を解放する。

rpcOpen()
TP1/ServerのSPPを呼び出すための環境を初期化する。

rpcOpen(String deffilename)

trnBegin()
グローバルトランザクションを開始する。

trnChainedCommit()
トランザクションの同期点を取得する。

trnChainedRollback()
トランザクションをロールバックする。

trnInfo()
TP1Clientオブジェクトがトランザクションとして稼働しているか確認する。

trnUnchainedCommit()
トランザクションの同期点を取得する。

trnUnchainedRollback()
トランザクションをロールバックする。

定義系
setConnectInformation(byte[] inf, short inf_len)
端末識別情報を設定する。

setDataTraceMode(String TrcPath, int size, int Datasize, boolean flag)※
JavaアプリケーションおよびJavaサーブレットからRPCを行うとき，データトレースをファイルに出力するかどうかを指定する。

setDccltdelay(int sec)
CUPとrapリスナーおよびrapサーバ間の通信遅延時間を設定する。

setDccltextend(int flags)
TP1/Client/Jの機能の拡張レベルを設定する。各指定値の論理和を設定すると，複数の機能の拡張レベルを指定できる。

setDccltinquiretime(int sec)
rapサーバが監視する問い合わせ間隔最大時間（クライアントから一定時間サービス要求が来ない場合に接続を切断する時間）を設定する。

setDchost(String host, int port)
窓口となるTP1/Serverのホスト名とポート番号を設定する。

setDcselint(int msec)
このメソッドは意味を持ちません。
旧バージョンからのソースの互換性を保証するためだけに残しています。

setDcwatchtim(int sec)
同期応答型RPCの場合に，CUPからSPPへサービス要求を送ってからサービスの応答が返るまでの最大応答待ち時間を設定する。

setErrorTraceMode(String TrcPath, int size, boolean flag)※
JavaアプリケーションおよびJavaサーブレットからTP1Clientクラスを呼び出すとき，サーバとの接続，切断，およびエラートレースをファイルに出力するかどうかを指定する。

setMethodTraceMode(String TrcPath, int size, boolean flag)※
JavaアプリケーションおよびJavaサーブレットからTP1Clientクラスを呼び出すとき，メソッドトレースをファイルに出力するかどうかを指定する。

setRpcextend(int extendoption)
RPC関連の設定を変更する。

setScdDirectObject(String scdhost, int scdport, int flags)
通信先スケジューラのホスト名，ポート番号を設定する。

setTraceArray(String[] array)
Javaアプリケーション，JavaサーブレットおよびJavaアプレットからTP1Clientクラスを呼び出すとき，サーバとの接続，切断，およびエラートレースを格納するための配列（メモリトレース）を指定する。障害情報を参照するには，この配列の内容をJavaアプリケーション，JavaサーブレットまたはJavaアプレットで参照する。

setUapTraceMode(String TrcPath, int size, boolean flag)※
JavaアプリケーションおよびJavaサーブレットからTP1Clientクラスを呼び出すとき，UAPトレースをファイルに出力するかどうかを指定する。

注※

このメソッドを使用できるのは，JavaアプリケーションまたはJavaサーブレットだけです。Javaアプレットで使用するとSecurityExceptionが発生します。

3.2　APIの使用方法

TP1/Client/Jが提供するクラスライブラリを使用してJavaアプレット，Javaアプリケーション，またはJavaサーブレットを作成したあとに，主に五つのAPIを実行して操作します。

TP1/Client/Jの使用準備

TP1Clientクラスのインスタンス作成

RPC環境の初期化

TP1/Serverのrapサーバに接続（リモートAPI機能を使用したRPCを行う場合）

遠隔サービスの呼び出し（RPC）

rapリスナー，rapサーバとの常設コネクションの切断（リモートAPI機能を使用してRPCを行っている場合）

RPC環境の解放

実行順に各APIの概要と例を示します。クラスの詳細については，「4.　TP1/Client/Jで使用するクラス」を参照してください。

注意

TP1Clientクラスのメソッドは，スレッドセーフに作成されていません。複数のスレッドから，同一のTP1Clientクラスのインスタンスのメソッドを実行する場合，必ず排他を掛けて，同時に実行されることがないようにしてください。排他を掛けないで複数のスレッドから，同一のTP1Clientクラスのインスタンスのメソッドを実行した場合，該当するメソッドが予期しないエラーを返すことがあります。

＜この節の構成＞

3.2.1　APIの実行順序

3.2.2　TP1/Client/J実行時の調整

3.2.3　障害情報の採取および機能の調整

3.2.4　トレース出力の指示

3.2.1　APIの実行順序

＜この項の構成＞

(1)　TP1/Client/Jの使用準備

(2)　TP1Clientクラスのインスタンス作成

(3)　RPC環境の初期化

(4)　TP1/Serverのrapサーバに接続（リモートAPI機能を使用したRPCを行う場合）

(5)　遠隔サービスの呼び出し（RPC）

(6)　rapリスナーおよびrapサーバとの常設コネクションの切断（リモートAPI機能を使用してRPCを行っている場合）

(7)　RPC環境の解放

(1)　TP1/Client/Jの使用準備

プログラムでTP1/Client/Jパッケージのインポート宣言をします。

Javaの各機能のパッケージをインポートするのと同様に，TP1/Client/Jのパッケージもインポートしてください。

import java.applet.*;                // java.appletパッケージのインポート
import java.awt.*;                    // java.awtパッケージのインポート
import JP.co.Hitachi.soft.OpenTP1.*;  // TP1Clientパッケージのインポート

(2)　TP1Clientクラスのインスタンス作成

TP1/Client/Jのクラス名はTP1Clientです。TP1/Serverにアクセスする必要があるときにTP1Clientクラスのインスタンスを作成してください。

TP1Client zaiko;                   // zaikoというインスタンス変数を宣言
zaiko = new TP1Client();           // TP1Clientクラスのインスタンス作成
                                  // （コンストラクタ呼び出し）

(3)　RPC環境の初期化

TP1/ServerのSPPを呼び出すためにRPC環境を初期化します。RPC環境を初期化するには，rpcOpenメソッドを呼び出します。

rpcOpenメソッドは，呼び出し時に何らかの問題が発生すると例外を返します。必要に応じて例外処理を行ってください。

なお，スケジューラダイレクト機能を使用したRPC，ネームサービスを利用したRPC，または通信先を指定したRPCを行う場合は，必ずrpcOpenメソッドを呼び出してください。リモートAPI機能を使用したRPCを行う場合は，呼び出さなくてもかまいません。

TP1/Client/J環境定義をシステムプロパティから取得する場合

try {
 zaiko.rpcOpen();                      // RPC環境の初期化
} catch(ErrFatalException e) {          // RPC環境初期化エラー発生
 System.out.println("CUP Initialize error");
} catch (TP1ClientException e) {        // その他のエラー発生
 System.out.println("error occured");
}

TP1/Client/J環境定義をファイルから取得する場合

try {
 zaiko.rpcOpen("C:¥¥Clt4J¥¥conf¥¥clt4j.ini");
                                       // RPC環境の初期化
} catch(ErrFatalException e) {          // RPC環境初期化エラー発生
 System.out.println("CUP Initialize error");
} catch (TP1ClientException e) {        // その他のエラー発生
 System.out.println("error occured");
}

(4)　TP1/Serverのrapサーバに接続（リモートAPI機能を使用したRPCを行う場合）

リモートAPI機能を使用したRPCを行う場合，TP1/Serverのrapリスナーおよびrapサーバに接続します。接続を解除するまで，Javaアプレット，Javaアプリケーション，またはJavaサーブレットとrapサーバとの間に専用のTCP/IPコネクションが開設されます。

接続するために，TP1ClientクラスのopenConnectionメソッドを呼び出します。openConnectionメソッドは，呼び出し時に何らかの問題が発生すると例外を返します。必要に応じて例外処理を行ってください。

なお，スケジューラダイレクト機能を使用したRPC，ネームサービスを利用したRPC，通信先を指定したRPC，またはオートコネクトモードを使用したRPCを行う場合は，openConnectionメソッドを呼び出さないでください。

try {
 zaiko.openConnection("zaikosv",12000);
                           // rapリスナー，rapサーバとのコネクション確立
} catch(ErrTimedOutException e) {       // 接続タイムアウト発生
 System.out.println("server inactive");
} catch (TP1ClientException e) {        // その他のエラー発生
 System.out.println("error occured");
}

rapリスナー，rapサーバと常設コネクションを確立している途中に，rapリスナー，rapサーバ，またはOpenTP1システムが異常終了して常設コネクションが切断された場合でも，CUP側が常設コネクションの切断を検知できないことがあります。その場合，次に発行するメソッド（rpcCall，closeConnection）がErrTimedOutExceptionを返すことがあります。

(5)　遠隔サービスの呼び出し（RPC）

rapサーバへの接続が成功したあと，遠隔サービス（SPP）を呼び出せます（RPC）。RPCを行うときは，rpcCallメソッドを呼び出します。rpcCallメソッドの引数には，サービスを示すサービスグループ名，サービス名，問い合わせデータ，問い合わせデータ長，応答データ受信領域，応答データ受信領域長，およびRPCの実行形態を指定します。

rpcCallメソッドは，実行時に何らかの問題が発生すると例外を返します。必要に応じて例外処理を行ってください。

int in_len[] = new int[1];
int out_len[] = new int[1];
byte in_data[];
byte out_data[];
String in = "PN=0012-2456-12";       // 問い合わせデータ(便宜上固定文字列)
in_len[0] = 16;                         // 問い合わせデータ長(便宜上固定)
out_len[0] = 16;                        // 応答データ領域長(便宜上固定)
in_data = new byte[in_len[0]];          // 問い合わせデータ領域作成
in.getBytes(0, in.length(), in_data, 0);// 問い合わせデータ設定
out_data = new byte[out_len[0]];        // 応答データ領域作成
try {
 zaiko.rpcCall("group", "service",     // RPC実行(問い合わせ・応答型)
     in_data, in_len, out_data, out_len, zaiko.DCNOFLAGS);
} catch (ErrTimedOutException e) {      // RPC要求がタイムアウト
 System.out.println("RPC timedout");
} catch (TP1ClientException e) {        // その他のエラー発生
 System.out.println("error occured");
}

なお，RPCには次の表に示す3種類があります。flags引数に指定して選択します。

RPCの種類 | 機能 | 指定方法
問い合わせ応答 | 連鎖なし | サーバに対してサービス要求をしたあと，応答が返る。次回同一サーバへ問い合わせたときは，前回と同一のサーバプロセスで実行するとは限らない。 | DCNOFLAGS
連鎖あり | サーバに対してサービス要求をしたあと，応答が返る。次回同一サーバへ問い合わせたときは，前回と同一のサーバプロセスで実行する（サーバプロセスを占有して使用する）。なお，スケジューラダイレクト機能を使用したRPC，およびネームサービスを使用したRPCでは使用できない。 | DCRPC_CHAINED
応答なし | サーバに対してサービス要求をしたあと，応答を受信できない。サービスを正常に実行できたかどうか，クライアントではわからない。応答を待たないため，クライアントの実行性能が良い。 | DCRPC_NOREPLY

注

DCRPC_CHAINEDでサービス呼び出しを実行した場合，最後のサービス呼び出し時に，連鎖型RPCの終了を示すため，DCNOFLAGSを指定してRPCを実行してください。

(6)　rapリスナーおよびrapサーバとの常設コネクションの切断（リモートAPI機能を使用してRPCを行っている場合）

TP1/Serverとのオンライン業務が完了したあとに，closeConnectionメソッドを呼び出してrapリスナー，rapサーバとの常設コネクションを切断します。このメソッドに引数はありません。

closeConnectionメソッドは，実行時に何らかの問題が発生すると例外を返します。必要に応じて例外処理を行ってください。

try {
 zaiko.closeConnection();
              // rapリスナー，rapサーバとの常設コネクション切断
} catch (TP1ClientException e) {        // エラー発生
 System.out.println("error occured");
}

(7)　RPC環境の解放

CUPの最後に，rpcCloseメソッドを呼び出してCUPのRPC環境を解放します。このメソッドに引数はありません。

rpcCloseメソッドは，実行時に何らかの問題が発生すると例外を返します。必要に応じて例外処理を行ってください。

try {
 zaiko.rpcClose();                     // RPC環境の解放
} catch (TP1ClientException e) {        // エラー発生
 System.out.println("error occured");
}

3.2.2　TP1/Client/J実行時の調整

通常，メソッドの監視時間はTP1/Client/J環境定義で設定します。しかし，TP1/Client/J環境定義の設定では，すべてのメソッドで同じ時間を使用するため，TP1/Server側で時間の掛かる処理がある場合，その時間の最大値を指定する必要があります。そのため，処理に合わせた実行時間の調整ができません。

この問題を解決するため，TP1/Client/Jでは，動的にメソッドの監視時間を調整するメソッドを提供しています。なお，これらのメソッドを実行すると引数で指定された値が実行時の値として設定され，TP1Clientクラスのインスタンスが存在する間（rpcCloseメソッドが呼び出されるまで），またはメソッドが新たに指定し直されるまでの間，有効です。メソッドの詳細については「4.　TP1/Client/Jで使用するクラス」を参照してください。

＜この項の構成＞

(1)　時間監視の調整

(1)　時間監視の調整

時間監視の調整には，setDcwatchtim，setDccltinquiretime，およびsetDccltdelayの三つのメソッドを使用します。それぞれのメソッドで指定できる時間監視を示します。

setDcwatchtimメソッド

応答監視時間を設定します。openConnection，rpcCall，およびcloseConnectionメソッドを呼び出すと，rapリスナーおよびrapサーバとの間で問い合わせ応答を行います。問い合わせを開始してから応答監視時間経過しても応答が返らない場合はタイムアウトになります。サービスを実行するための所要時間や通信速度を考慮して，適当な値を設定してください。

setDccltinquiretimeメソッド

openConnectionメソッドを呼び出してCUPとの間で常設コネクションが確立されたrapリスナーおよびrapサーバは，closeConnectionメソッドが呼び出されるまでコネクションが確立されたままです。TP1/Client/Jに何らかの障害が発生してcloseConnectionメソッドが呼び出せなくなると，rapリスナーおよびrapサーバはいつまでも解放されません。これを防止するために，TP1/Client/Jから一定時間が経過しても問い合わせがないときに，rapリスナーおよびrapサーバ側で強制的に接続を解放するための時間を設定します。

なお，DCCM3が接続先のrapサーバの場合，setDccltinquiretimeメソッドの設定値は無効になります。

setDccltdelayメソッド

rpcCallメソッドを呼び出すと，TP1/Client/J側ではsetDcwatchtimメソッドで指定した値で応答時間を監視しています。TP1/Client/JからのRPC要求を中継するrapサーバでは（setDcwatchtimメソッドで指定した時間 － setDccltdelayメソッドで指定した時間）分だけ応答を監視します。setDccltdelayメソッドで指定する時間は，TP1/Client/J，TP1/Server間の通信遅延時間です。TP1/Client/J側とrapサーバ側が同一時間で応答監視を行うと，TP1/Client/J側の方が応答監視開始が早い分，先にタイムアウトします。このためrapサーバ側で応答監視満了ぎりぎりの時間に応答を返しても，TP1/Client/J側がすでにタイムアウトしていて応答を受け取れないことがあります。このような現象を避けるため，このメソッドでrapサーバ側を先にタイムアウトさせます。なお，このメソッドでの指定値を有効にするには，TP1/Client/J環境定義でdcwatchtiminherit=Yを定義するか，またはsetRpcextendメソッドで，DRPC_WATCHTIMINHERIT引数を指定してください。

3.2.3　障害情報の採取および機能の調整

障害情報の採取および機能の調整のために，setTraceArray，setDccltextend，およびsetRpcextendの三つのメソッドがあります。各メソッドの指定値は，メソッドを呼び出した時点から有効になります。なお，これらのメソッドを呼び出すと引数で指定した値は，実行時の値として設定され，TP1Clientクラスのインスタンスが存在する間（rpcCloseメソッドが呼び出されるまで），または新たに同一のメソッドが呼び出されるまでの間，有効です。

setTraceArrayメソッド

Javaアプレットでは，Javaのセキュリティ上の制約から実行環境にファイルを作成できません。このため，障害時の情報などをトレース情報としてファイルに取得できません。このような場合，トレース情報を取得するためにメモリトレース機能を使用します。setTraceArrayメソッドでString型の配列を指定しておくと，TP1Clientクラスはこの配列に障害情報を格納します。JavaアプレットまたはJavaアプリケーションでエラー発生時にこのString配列の内容をブラウザに表示するなどして参照し，障害時の原因調査，対策に利用できます。メモリトレースの詳細については，「2.11.4　エラートレース，メモリトレース」を参照してください。

setDccltextendメソッド

実行環境によって差が出る機能を使用するかどうかを指定します。TP1/ServerのSPP側のdc_rpc_get_callers_address関数でTP1/Client/JのIPアドレスを参照できるかどうかを指定できます。Microsoft Internet Explorer 3.0Jでは，TP1/Client/J側で自IPを調べられません。また，Windows 95のマルチホームドホスト形態でこの操作を行うとOS内部で異常が発生するため，デフォルトでは自IPを調べる操作は行いません。

setRpcextendメソッド

TP1/Client/Jから発行するRPCの機能拡張オプションを指定します。RPC機能の拡張レベルを複数指定する場合，それぞれの指定値の論理和を指定します。

3.2.4　トレース出力の指示

各種トレースを取得するには，TP1/Client/J環境定義で設定するか，または実行時にメソッドで指定します。

ただし，Javaアプレットでは，セキュリティの制約からトレースを取得できません。また，Javaサーブレットは，使用するアプリケーションサーバによってセキュリティの制約に違いがあります。詳細は使用するアプリケーションサーバを確認してください。実行時にトレースの取得の有無を変更できるのは，setUapTraceMode，setDataTraceMode，setErrorTraceMode，およびsetMethodTraceModeの四つのメソッドです。

各トレースファイルが出力する内容については，「2.11.1　トレースファイルの出力内容」を参照してください。これらのトレースは次のメソッドを実行した時点から出力されます。

setUapTraceModeメソッド

TP1Clientクラスの各メソッドの呼び出し情報をファイルに出力することを指定します。

setDataTraceModeメソッド

TP1/Serverとの通信データをファイルに出力することを指定します。

setErrorTraceModeメソッド

エラー発生時の情報をファイルに出力することを指定します。

setMethodTraceModeメソッド

TP1Clientクラスの内部メソッドの走行履歴をファイルに出力することを指定します。Java環境では障害情報が少ないため，どの処理で障害が発生したかを調査するために採取します。

4.　TP1/Client/Jで使用するクラス

TP1/Client/Jで使用するクラスについて説明します。

＜この章の構成＞

クラス TP1Client

クラス DCRpcBindTbl

クラス ErrAcceptCanceledException

クラス ErrBufferOverflowException

クラス ErrCollisionMessageException

クラス ErrClientTimedOutException

クラス ErrConnfreeException

クラス ErrConnRefusedException

クラス ErrFatalException

クラス ErrHazardException

クラス ErrHazardNoBeginException

クラス ErrHeuristicException

クラス ErrHeuristicNoBeginException

クラス ErrHostUndefException

クラス ErrInitializingException

クラス ErrInvalidArgsException

クラス ErrInvalidMessageException

クラス ErrInvalidPortException

クラス ErrInvalidReplyException

クラス ErrIOErrException

クラス ErrMessageTooBigException

クラス ErrNetDownAtClientException

クラス ErrNetDownAtServerException

クラス ErrNetDownException

クラス ErrNoBeginException

クラス ErrNoBufsAtServerException

クラス ErrNoBufsException

クラス ErrNoSuchServiceException

クラス ErrNoSuchServiceGroupException

クラス ErrNotTrnExtendException

クラス ErrNotUpException

クラス ErrProtoException

クラス ErrReplyTooBigException

クラス ErrRMException

クラス ErrRollbackException

クラス ErrRollbackNoBeginException

クラス ErrSecchkException

クラス ErrSecurityException

クラス ErrServerBusyException

クラス ErrServerTimedOutException

クラス ErrServiceClosedException

クラス ErrServiceNotUpException

クラス ErrServiceTerminatedException

クラス ErrServiceTerminatingException

クラス ErrSyserrAtServerException

クラス ErrSyserrException

クラス ErrTestmodeException

クラス ErrTimedOutException

クラス ErrTMException

クラス ErrTrnchkException

クラス ErrTrnchkExtendException

クラス ErrVersionException

クラス TP1ClientException

クラス TP1Client

public final class TP1Client
extends java.lang.Object

TP1/Serverのサーバに対してサービス要求を行うクラスです。

関連項目

TP1ClientException

フィールド

●DCNOFLAGS

public static final int DCNOFLAGS = 0x00000000

RPCの形態に同期応答型RPCを指定します。

●DCRPC_NOREPLY

public static final int DCRPC_NOREPLY = 0x00000001

RPCの形態に非応答型RPCを指定します。

●DCRPC_CHAINED

public static final int DCRPC_CHAINED = 0x00000004

RPCの形態に連鎖型RPCを指定します。

●DCRPC_SCD_LOAD_PRIORITY

public static final int DCRPC_SCD_LOAD_PRIORITY = 0x00000008

サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうかを指定します。

●DCRPC_WATCHTIMINHERIT

public static final int DCRPC_WATCHTIMINHERIT = 0x00000010

リモートAPI機能を使用したRPCを行う場合に，CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。

●DCRPC_RAP_AUTOCONNECT

public static final int DCRPC_RAP_AUTOCONNECT = 0x00000020

リモートAPI機能を利用したRPCを行う場合に，TP1/Client/Jが自動的にコネクションを確立するかどうかを指定します。

●DCRPC_TPNOTRAN

public static final int DCRPC_TPNOTRAN = 0x00000020

RPCの形態にトランザクションを引き継がないRPCを指定します。

●DCRPC_WATCHTIMRPCINHERIT

public static final int DCRPC_WATCHTIMRPCINHERIT = 0x00000040

CUPの最大応答待ち時間を，サーバ側に引き継ぐかどうかを指定します。

●DCRPC_MAX_MESSAGE_SIZE

public static final int DCRPC_MAX_MESSAGE_SIZE = 1048576

RPC電文の最大長を指定します。指定できる最大値は1048576バイトです。ただし，dccltrpcmaxmsgsizeオペランドを使用した場合，RPC電文の最大長は，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

コンストラクタ

●TP1Client

public TP1Client()

TP1/ServerのサーバにRPCを行うTP1Clientクラスのインスタンスを作成します。CUPをJavaアプリケーション，またはJavaサーブレットで作成する場合に使用します。

●TP1Client

public TP1Client(Applet app)

TP1/ServerのサーバにRPCを行うTP1Clientクラスのインスタンスを作成します。CUPをJavaアプレットとして作成する場合に使用します。

パラメタ

app

Javaアプレットのインスタンスオブジェクトを指定します。

メソッド

●setDccltinquiretime

public void setDccltinquiretime(int sec)
                        throws ErrInvalidArgsException

CUPがサーバに対して問い合わせを行ってから，次の問い合わせをするまでの間隔の最大時間を設定します。この値は，rapサーバで監視するタイマです。指定時間を超えても問い合わせがない場合，rapサーバは強制的に常設コネクションを切断します。このメソッドはTP1Clientクラスのインスタンスが存在している間，呼び出せます。

パラメタ

sec

rapサーバが監視する問い合わせ間隔最大時間を0から1048575（単位：秒）までの範囲で指定します。0を指定した場合は，rapサーバはCUPからの問い合わせを無限に待ちます。

戻り値

なし。

例外

ErrInvalidArgsException

sec引数に指定された値が，0から1048575までの範囲にありません。

●setDccltdelay

public void setDccltdelay(int sec)
                  throws ErrInvalidArgsException

rapサーバと，CUP間の通信遅延時間を設定します。このメソッドを設定すると，rapサーバ側の最大応答待ち時間の時間監視を指定した値の分だけ早く終了させ，CUP側の最大応答待ち時間の監視時間タイムアウトによる電文のすれ違いを防止できます。

setDcwatchtimメソッドで指定した最大応答待ち時間が0の場合，このメソッドで指定した通信遅延時間は無視されます。また，最大応答待ち時間からrapサーバ通信時間を引いた値が0または負の値になるときは，rapサーバ側での最大応答待ち時間を1と仮定してrapサーバが動作します。

なお，このメソッドの指定を有効にするには，TP1/Client/J環境定義でdcwatchtiminherit=Yを指定するか，またはsetRpcextendメソッドのDRPC_WATCHTIMINHERIT引数を指定してください。

パラメタ

sec

rapサーバと，CUP間の通信遅延時間を0から65535（単位：秒）までの範囲で指定します。

戻り値

なし。

例外

ErrInvalidArgsException

sec引数に指定された値が，0から65535までの範囲にありません。

●setDcwatchtim

public void setDcwatchtim(int sec)
                  throws ErrInvalidArgsException

同期応答型RPCの場合に，CUPからSPPへサービス要求を送ってからサービスの応答が返るまでの最大応答待ち時間を設定します。このメソッドで設定する値は，TP1/Client/Jの内部通信での最大応答待ち時間としても使用されます。

パラメタ

sec

最大応答待ち時間を0から65535（単位：秒）までの範囲で指定します。0を指定した場合は，応答を受信するまで無限に待ちます。使用するJava環境によっては，サーバがダウンしてもTCP/IPコネクションの切断を検出できない場合があります。この場合，待ち時間を無限にすると存在しないサーバからの応答を永久に待ち続けることになるため，適当な待ち時間を設定してください。

戻り値

なし。

例外

ErrInvalidArgsException

sec引数に指定された値が，0から65535までの範囲にありません。

●setDcselint

public void setDcselint(int msec)
                throws ErrInvalidArgsException

推奨されていません。旧バージョンからのソースの互換性を保証するためだけに残しているメソッドです。現在は，このメソッドは意味を持ちません。

●setDccltextend

public void setDccltextend(int flags)

TP1/Client/Jの機能の拡張レベルを指定します。機能の拡張レベルを複数指定する場合，それぞれの指定値の論理和を指定します。

パラメタ

flags

TP1/Client/Jの機能の拡張レベルを指定します。

0x00000000：TP1/Client/Jの機能を拡張しません。

0x00000001：TP1/Client/Jの機能を拡張します。rpcCallメソッド呼び出し時，自CUPのIPアドレスをサービスに連絡します。呼び出したサービスでdc_rpc_get_callers_address()関数を実行し，CUPのアドレスを求める必要がある場合，指定してください。

戻り値

なし。

●setRpcextend

public void setRpcextend(int extendoption)
                 throws ErrInvalidArgsException

TP1/Client/Jから発行するRPCの機能拡張オプションを指定します。RPC機能の拡張レベルを複数指定する場合，それぞれの指定値の論理和を指定します。

パラメタ

extendoption

RPC機能の拡張レベルを指定します。

DCRPC_SCD_LOAD_PRIORITY：サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうかを指定します。このオプションが真の場合，TP1/Client/J環境定義にdcscdloadpriority=Yを指定したときと同じ動作をします。このオプションが偽の場合，TP1/Client/J環境定義にdcscdloadpriority=Nを指定したときと同じ動作をします。

DCRPC_WATCHTIMINHERIT：リモートAPI機能を使用したRPCを行う場合に，CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。このオプションが真の場合，TP1/Client/J環境定義にdcwatchtiminherit=Yを指定したときと同じ動作をします。このオプションが偽の場合，TP1/Client/J環境定義にdcwatchtiminherit=Nを指定したときと同じ動作をします。

DCRPC_RAP_AUTOCONNECT：リモートAPI機能を使用したRPCを行う場合に，TP1/Client/Jが自動的にコネクションを確立するかどうかを指定します。このオプションが真の場合，TP1/Client/J環境定義にdcrapautoconnect=Yを指定したときと同じ動作をします。このオプションが偽の場合，TP1/Client/J環境定義にdcrapautoconnect=Nを指定したときと同じ動作をします。また，すでに非オートコネクトモードを使用し，openConnectionメソッドを呼び出してコネクションを確立している場合は，このオプションは無視されます。

DCRPC_WATCHTIMRPCINHERIT：CUPの最大応答待ち時間を，サーバ側に引き継ぐかどうかを指定します。このオプションが真の場合，TP1/Client/J環境定義にdcwatchtimrpcinherit=Yを指定したときと同じ動作をします。このオプションが偽の場合，TP1/Client/J環境定義にdcwatchtimrpcinherit=Nを指定したときと同じ動作をします。

戻り値

なし。

例外

ErrInvalidArgsException

extendoption引数の指定に誤りがあります。

●setDchost

public void setDchost(String host, int port)
              throws ErrHostUndefException,
                     ErrInvalidPortException,
                     ErrProtoException

窓口となるTP1/Serverのホスト名とポート番号を設定します。

パラメタ

host

窓口となるTP1/Serverのホスト名を指定します。リモートAPI機能を使用したRPCを行う場合は，通信先のrapリスナーのホスト名を指定します。CUPとTP1/Serverの間にファイアウォールがある場合は，ファイアウォールのホスト名を指定します。

port

窓口となるTP1/Server上で動作しているスケジュールサーバのポート番号，ネームサーバのポート番号を指定します。リモートAPI機能を使用したRPCを行う場合は，通信先のrapリスナーのポート番号を指定します。ポート番号は，5001から65535までの範囲で指定します。

戻り値

なし。

例外

ErrHostUndefException

host引数の指定に誤りがあります。

ErrInvalidPortException

port引数の指定に誤りがあります。

ErrProtoException

メソッドの発行順序に誤りがあります。リモートAPI機能を使用したRPCを行う場合で，すでにrapサーバとの間に常設コネクションが確立されている状態でこのメソッドが呼び出されました。

●setTraceArray

public void setTraceArray(String[] array)

引数に指定された配列にエラートレースを取得するかどうかを指定します。CUPがJavaアプレット，Javaアプリケーション，およびJavaサーブレットのどの場合でも，このメソッドを呼び出せます。

パラメタ

array

エラートレースを格納するString配列を指定します。nullを指定した場合，エラートレースを取得しません。

戻り値

なし。

●setUapTraceMode

public void setUapTraceMode(String TrcPath,
                           int size,
                           boolean flag)
                    throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合，UAPトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合，このメソッドを呼び出さないでください。

パラメタ

TrcPath

UAPトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するUAPトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

UAPトレースを取得するかどうかを指定します。

true：UAPトレースを取得します。

false：UAPトレースを取得しません。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

●setMethodTraceMode

public void setMethodTraceMode(String TrcPath,
                              int size,
                              boolean flag)
                       throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合，メソッドトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合，このメソッドを呼び出さないでください。

パラメタ

TrcPath

メソッドトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するメソッドトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

メソッドトレースを取得するかどうかを指定します。

true：メソッドトレースを取得します。

false：メソッドトレースを取得しません。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

●setDataTraceMode

public void setDataTraceMode(String TrcPath,
                            int size,
                            int DataSize,
                            boolean flag)
                     throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合，データトレースを取得するかどうかを指定します。CUPがJavaアプレットの場合，このメソッドを呼び出さないでください。

パラメタ

TrcPath

データトレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するデータトレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

DataSize

出力するデータサイズ16から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

データトレースを取得するかどうかを指定します。

true：データトレースを取得します。

false：データトレースを取得しません。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

●setErrorTraceMode

public void setErrorTraceMode(String TrcPath,
                             int size,
                             boolean flag)
                      throws ErrInvalidArgsException

CUPがJavaアプリケーションまたはJavaサーブレットの場合，エラートレースを取得するかどうかを指定します。CUPがJavaアプレットの場合，このメソッドを呼び出さないでください。

パラメタ

TrcPath

エラートレースを出力するディレクトリを指定します。flag引数にfalseを指定した場合は無視されます。

size

出力するエラートレースファイルのサイズを4096から1048576までの範囲で指定します。flag引数にfalseを指定した場合は無視されます。

flag

エラートレースを取得するかどうかを指定します。

true：エラートレースを取得します。

false：エラートレースを取得しません。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

このメソッドはJavaアプレットでは使用できません。Javaアプレットで使用した場合の動作は保証できません。

●rpcOpen

public void rpcOpen()
            throws ErrIOErrException,
                   ErrProtoException,
                   ErrFatalException,
                   ErrSecurityException,
                   ErrSyserrException

TP1/ServerのSPPを呼び出すための環境を初期化します。CUPを実行するとき，最初にこのメソッドを呼び出します。

パラメタ

なし。

戻り値

なし。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。rpcCloseメソッドが呼び出されないで再度rpcOpenメソッドが呼び出されました。

ErrFatalException

TP1/Client/J環境定義の指定に誤りがあります。または，TP1/Serverとの通信環境の初期化に失敗しました。

ErrSyserrException

システムエラーが発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

注意事項

このメソッドをJavaアプリケーション，またはJavaサーブレットで使用する場合は，TP1/Client/J環境定義をシステムプロパティから取得します。

このメソッドをJavaアプレットで使用する場合は，TP1/Client/J環境定義をアプレットのparamタグから取得します。

このメソッドをJavaアプレットで使用する場合は，TP1Clientクラスをインスタンス化するコンストラクタに，TP1Client(Applet app)を使用してください。

●rpcOpen

public void rpcOpen(String deffilename)
            throws ErrIOErrException,
                   ErrProtoException,
                   ErrFatalException,
                   ErrSyserrException,
                   ErrInvalidArgsException,
                   ErrSecurityException

TP1/ServerのSPPを呼び出すための環境を初期化します。CUPを実行するときは，最初にこのメソッドを呼び出します。

パラメタ

deffilename

TP1/Client/J環境定義を格納したファイルのパス名を完全パス名で指定します。

戻り値

なし。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。rpcCloseメソッドを呼び出さないで再度rpcOpenメソッドが呼び出されました。

ErrFatalException

TP1/Client/J環境定義に誤りがあります。または，TP1/Serverとの通信環境の初期化に失敗しました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrSecurityException

セキュリティ例外が発生しました。

注意事項

このメソッドは，Javaアプレットでは使用できません。Javaアプレットで使用する場合は，このメソッドの前に説明したrpcOpenメソッドを使用してください。

●rpcClose

public void rpcClose()
             throws ErrIOErrException,
                    ErrSyserrException,
                    ErrNetDownException

TP1/ServerのSPPを呼び出すための環境を解放します。TP1/ServerのSPPに対して再度サービス呼び出しを行う場合は，rpcOpenメソッドを呼び出します。CUPの実行の最後にこのメソッドを呼び出します。

パラメタ

なし。

戻り値

なし。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

●openConnection

public void openConnection()
                   throws ErrIOErrException,
                          ErrHostUndefException,
                          ErrTimedOutException,
                          ErrNetDownException,
                          ErrNoBufsException,
                          ErrNotUpException,
                          ErrSyserrException,
                          ErrProtoException,
                          ErrInvalidArgsException

TP1/Client/J環境定義のdchostオペランドおよびdcrapportオペランドで指定されたrapサーバとの間に常設コネクションを確立するか，またはdcweburlオペランドで指定されたOpenTP1のWWWセション管理機能を利用したサーバ（TP1/Web）に接続して擬似セションを開始します。

なお，一つのCUPから，同時に複数の常設コネクションを確立することはできません。

ただし，CUPと接続要求先rapリスナーの間にファイアウォールがある場合，接続要求先rapリスナーにはファイアウォールのホスト名とポート番号を指定してください。

パラメタ

なし。

戻り値

なし。例外を返さない場合，正常終了したか，またはすでに常設コネクションが確立されています。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

rapリスナーのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていません。

または，TP1/Client/J環境定義のdcweburlオペランドに指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

ErrTimedOutException

rapリスナーとのコネクション確立中にタイムアウトが発生しました。

または，TP1/Webの擬似セション開始中にタイムアウトが発生しました。

ErrNetDownException

rapリスナー，またはTP1/Webとの通信でネットワーク障害が発生しました。

または，通信先のTP1/Serverが稼働していません。

ErrNoBufsException

rapリスナー，rapサーバでメモリ不足が発生しました。

または，TP1/Webでメモリ不足が発生しました。

ErrNotUpException

rapリスナー，rapサーバが稼働していません。

または，TP1/Webが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションを確立している間に再度openConnectionメソッドが呼び出されました。

ErrInvalidArgsException

引数の指定に誤りがあります。

注意事項

接続先のrapリスナーが起動していない場合，ErrIOErrExceptionまたはErrNetDownExceptionが返されます。

このメソッドが例外を返した場合，常設コネクションは確立されていません。

●openConnection

public void openConnection(String host,
                          int port)
                   throws ErrIOErrException,
                          ErrHostUndefException,
                          ErrTimedOutException,
                          ErrNoBufsException,
                          ErrNotUpException,
                          ErrSyserrException,
                          ErrInvalidPortException,
                          ErrProtoException,
                          ErrInvalidArgsException,
                          ErrNetDownException

リモートAPI機能を使用したRPCを行うために，CUPとrapリスナー，rapサーバとの間に常設コネクションを確立します。常設コネクションの確立先はパラメタで指定された値を使用します。

パラメタ

host

rapリスナー，またはファイアウォールのホスト名を指定します。

port

rapリスナー，またはファイアウォールのポート番号を5001から65535までの範囲で指定します。

戻り値

なし。例外を返さない場合，正常終了したか，またはすでに常設コネクションが確立されています。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

host引数の指定に誤りがあります。

ErrTimedOutException

rapリスナーとのコネクションの確立中にタイムアウトが発生しました。

ErrNoBufsException

rapリスナー，rapサーバでメモリ不足が発生しました。

ErrNotUpException

rapリスナー，rapサーバが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

port引数の指定に誤りがあります。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションを確立している間に再度openConnectionメソッドが呼び出されました。

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrNetDownException

rapリスナーとの通信でネットワーク障害が発生しました。または，通信先のTP1/Serverが稼働していません。

注意事項

接続先のrapリスナーが起動していない場合，ErrIOErrExceptionまたはErrNetDownExceptionが返されます。このメソッドが例外を返した場合，常設コネクションは確立されていません。

●openConnection

public void openConnection(String   url,
                          short   flags)
                   throws ErrIOErrException,
                          ErrHostUndefException,
                          ErrTimedOutException,
                          ErrNetDownException,
                          ErrNoBufsException,
                          ErrNotUpException,
                          ErrSyserrException,
                          ErrProtoException,
                          ErrInvalidArgsException

OpenTP1のWWWセション管理機能を利用したサーバ（TP1/Web）に接続し，擬似セションを開始します。以降，HTTPプロトコルに基づいた通信サービスを行えます。

パラメタ

url

プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報をURL形式で指定します。

flags

DCSESSIONを指定します。

戻り値

なし。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrHostUndefException

url引数で指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

ErrTimedOutException

TP1/Webの擬似セション開始中にタイムアウトが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrNoBufsException

TP1/Webでメモリ不足が発生しました。

ErrNotUpException

TP1/Webが稼働していません。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。

すでにrapサーバとの間に常設コネクションが確立されている状態で，TP1/Client/J環境定義でdcrapautoconnect=Yまたはdcrapdirect=Nを指定しました。

ErrInvalidArgsException

引数の指定に誤りがあります。

●closeConnection

public void closeConnection()
                    throws ErrIOErrException,
                           ErrSyserrException,
                           ErrProtoException,
                           ErrTimedOutException,
                           ErrNetDownException

CUPとrapリスナー，rapサーバとの間で確立されている常設コネクションを切断します。

パラメタ

なし。

戻り値

なし。

例外

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrProtoException

メソッドの発行順序に誤りがあります。すでにコネクションが切断されている間に再度closeConnectionメソッドが呼び出されました。

ErrTimedOutException

TP1/Webとの擬似セション切断中またはrapリスナー，rapサーバとのコネクション切断中に，タイムアウトが発生しました。

ErrNetDownException

rapリスナーとの通信でネットワーク障害が発生しました。

注意事項

このメソッドが例外を返した場合でも，常設コネクションは切断されています。

●rpcCall

public void rpcCall(String group,
                   String service,
                   byte[] in_data,
                   int[] in_len,
                   byte[] out_data,
                   int[] out_len,
                   int flags)
            throws ErrInvalidArgsException,
                   ErrProtoException,
                   ErrNoBufsException,
                   ErrNetDownException,
                   ErrTimedOutException,
                   ErrMessageTooBigException,
                   ErrReplyTooBigException,
                   ErrNoSuchServiceGroupException,
                   ErrNoSuchServiceException,
                   ErrServiceClosedException,
                   ErrServiceTerminatingException,
                   ErrServiceNotUpException,
                   ErrNotUpException,
                   ErrSyserrAtServerException,
                   ErrSyserrException,
                   ErrNoBufsAtServerException,
                   ErrInvalidReplyException,
                   ErrInitializingException,
                   ErrTrnchkException,
                   ErrServerBusyException,
                   ErrSecchkException,
                   ErrServiceTerminatedException,
                   ErrIOErrException,
                   ErrTestmodeException,
                   ErrConnfreeException,
                   ErrHostUndefException,
                   ErrInvalidPortException

SPPのサービスを要求します。サービスグループ名とサービス名の組み合わせで識別されるサービス関数を呼び出し，その応答を受け取ります。このメソッドを呼び出したときに，目的のサービスグループが閉塞されているとErrServiceClosedExceptionが返されます。

flags引数にDCRPC_TPNOTRANを指定すると，トランザクションの処理からのRPCをトランザクションの処理ではないサービス要求にできます。

このメソッドを呼び出したときに，目的のサービスグループがdcsvstopコマンドなどで終了処理中，または終了している場合，ErrServiceTerminatingException，ErrServiceClosedException，またはErrNoSuchServiceGroupExceptionのどれかが返されます。どの例外が返されるかは，このメソッドを呼び出したタイミングによって異なります。

ソケット受信型サーバでは，ユーザサービス定義のmax_socket_msgおよびmax_socket_msglenオペランドの指定で電文の輻輳制御を行っています。そのためサーバがサービス要求を受信できない場合があります。この場合，メソッドを呼び出すとErrServerBusyExceptionが返されます。この例外が返されたあと，適当な時間を置いてから再度このメソッドを呼び出すと，サービス要求できることがあります。

パラメタ

group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

in_len

サービスの入力パラメタ長を1からDCRPC_MAX_MESSAGE_SIZE※の指定値までの範囲で指定します。入力パラメタ長はin_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合，null以外の値を指定しても何も格納されません。

out_len

サービスの応答の長さを1からDCRPC_MAX_MESSAGE_SIZE※の指定値までの範囲で指定します。応答の長さはout_len[0]に格納してください。

サービス要求終了時，SPPのサービス関数で指定した応答の長さがout_len[0]に設定されます。

非応答型RPCの場合，応答の長さを指定しても無視され，サービス要求終了時，out_len[0]には何も設定されません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

flags

RPCの形態を指定します。

DCNOFLAGS：同期応答型RPC

DCRPC_NOREPLY：非応答型RPC

DCRPC_CHAINED：連鎖型RPC

DCRPC_TPNOTRAN：トランザクションを引き継がないRPC

DCNOFLAGSまたはDCRPC_CHAINEDを指定すると，サーバから応答が返されるか，TP1/Client/J環境定義のdcwatchtimオペランドで指定した最大応答待ち時間が経過してタイムアウトになるまで，このメソッドは制御を戻しません。ただし，サービス要求先のSPPが異常終了した場合は，すぐに例外を返します。この場合，TP1/Client/J環境定義のdcwatchtimオペランドで指定した値によって，次の例外を返します。

1～65535の値を指定した場合
ErrTimedOutException

0を指定した場合
ErrServiceNotUpException

DCRPC_NOREPLYを指定すると，要求したサービスは応答を返さないサービスとみなされます。この場合，このメソッドはサービスの実行終了を待たないですぐに制御を戻します。このフラグを指定した場合，応答（out_data引数の指定値）と応答の長さ（out_len引数の指定値）は参照できません。さらに，サービス関数が実行されたかどうかはCUP側からはわかりません。

DCRPC_CHAINEDを指定すると，同じサービスグループに属するサービスを複数回要求する場合は，最初の要求時と同一のプロセスで実行されます。

連鎖型RPCを使用する場合，次に示す制限があります。

2回目以降のこのメソッドの呼び出しは，ユーザサーバおよびサービスの閉塞を検出できません。

2回目以降のこのメソッドの呼び出しで，サービス関数の処理に異常が発生した場合，サービス単位ではなくユーザサーバ全体が閉塞します。

リモートAPI機能を使用する場合は，flags引数にDCRPC_CHAINEDを指定できます。

連鎖型RPCは，次のどちらかの方法で終了させてください。
・連鎖型RPCを実行しているサービスグループに対して，flags引数にDCNOFLAGSを指定したrpcCallメソッド（同期応答型RPC）を実行する。※
・連鎖型RPCを実行しているグローバルトランザクションを同期点処理（コミットまたはロールバック）で完了させる。
注※
　同期応答型RPCを実行しないでcloseConnectionメソッドまたはrpcCloseメソッドを呼び出すと，TP1/Client/JのAPIは正常終了しますが，次の状態となります。
・グローバルトランザクションの範囲外の場合
　サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまで占有されます。
・グローバルトランザクションの範囲内の場合
　暗黙的にコミットされ，連鎖型RPCを終了します。

DCRPC_TPNOTRANを指定すると，トランザクションの処理からのRPCは，トランザクションの処理にしないサービス要求になります。トランザクションの処理からだけDCRPC_TPNOTRANを指定できます。DCRPC_TPNOTRANは，DCNOFLAGS，DCRPC_NOREPLY，またはDCRPC_CHAINEDとあわせて指定できます。

（例）flags = TP1Client.DCNOFLAGS|TP1Client.DCRPC_TPNOTRAN;

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。この場合，詳細メッセージに誤った引数名が設定されます。

ErrProtoException

メソッドの発行順序に誤りがあります。openConnectionメソッドが呼び出されていません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNetDownException

ネットワーク障害が発生しました。または，通信先のTP1/Serverが稼働していません。

ErrTimedOutException

このメソッドの処理でタイムアウトが発生しました。または，サービス要求先SPPが処理を完了する前に異常終了しました。

ErrMessageTooBigException

in_len引数に指定した入力パラメタ長が最大値を超えています。

ErrReplyTooBigException

サーバから返された応答の長さが，CUPで用意した領域（out_data引数の指定値）の長さを超えています。

ErrNoSuchServiceGroupException

group引数に指定したサービスグループ名は定義されていません。

ErrNoSuchServiceException

service引数に指定したサービス名は定義されていません。

ErrServiceClosedException

service引数に指定したサービス名が存在するサービスグループは閉塞されています。

ErrServiceTerminatingException

service引数に指定したサービスは終了処理中です。

ErrServiceNotUpException

サービス要求したSPPは稼働していません。または，サービス要求したSPPが処理を完了する前に異常終了しました。この例外はTP1/Client/J環境定義にdcwatchtim=0を指定（応答を無限に待つ）した場合に返されます。

ErrNotUpException

指定したサービスが存在するノードのTP1/Serverが稼働していません。この場合，異常終了，停止中，終了処理中，およびネットワーク障害の発生が考えられます。

ErrSyserrAtServerException

指定したサービスでシステムエラーが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNoBufsAtServerException

指定したサービスでメモリ不足が発生しました。

ErrInvalidReplyException

サービス関数が返した応答の長さが1からDCRPC_MAX_MESSAGE_SIZE※で指定した値までの範囲にありません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

ErrInitializingException

サービス要求したノードにあるTP1/Serverは開始処理中です。

ErrTrnchkException

ノード間負荷バランス機能を使用している環境で，複数のSPPのトランザクション属性が一致していません。または，負荷を分散する先のノードにあるTP1/Serverのバージョンが，TP1/Client/Jのバージョンよりも古いため，ノード間負荷バランス機能を実行できません。この例外は，ノード間負荷バランス機能を使用しているSPPにサービス要求した場合にだけ返されます。

ErrServerBusyException

サービス要求先のソケット受信型サーバが，サービス要求を受信できません。

ErrSecchkException

サービス要求先のSPPは，セキュリティ機能で保護されています。rpcCallメソッドを呼び出したCUPには，SPPへのアクセス権限がありません。

ErrServiceTerminatedException

サービス要求したSPPが，処理を完了する前に異常終了しました。この例外はrapリスナーサービス定義のrpc_extend_functionオペランドに00000001を指定した場合にだけ返されます。rpc_extend_functionオペランドに00000000を指定，またはオペランドを省略した場合は，ErrTimedOutExceptionまたはErrServiceNotUpExceptionが返されます。

ErrIOErrException

何らかの入出力例外が発生しました。rapサーバが問い合わせ間隔の時間監視でタイムアウトし，コネクションを切断したことも考えられます。

ErrTestmodeException

テストモードのSPPに対してサービス要求を行いました。

ErrConnfreeException

rapサーバとの常設コネクションが切断されました。または，TP1/Webとの擬似セションが切断されました。

ErrHostUndefException

次の要因が考えられます。

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか，または指定に誤りがあります。

TP1/Client/J環境定義のdcweburlオペランドに指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

ErrInvalidPortException

次の要因が考えられます。

リモートAPI機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcrapportオペランドが指定されていない

スケジューラダイレクト機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcscdportオペランドが指定されていない

注意事項

入力パラメタ（in_data引数の指定値）と，サービス関数の応答（out_data引数の指定値）に同じ領域を指定しないでください。

flags引数にDCRPC_NOREPLYを指定した場合，次の例外は返されません。

発生しない例外

ErrReplyTooBigException

ErrInvalidReplyException

発生しても検出できない例外

ErrNoSuchServiceException

ErrServiceClosedException

ErrServiceTerminatingException

ErrSyserrAtServerException

ErrNoBufsAtServerException

ErrNotUpException

ErrTimedOutExceptionが返される場合，次に示す要因が考えられます。
・TP1/Client/J環境定義またはTP1/Serverの定義で指定した最大応答待ち時間が短い
・サービス要求先のSPPから発行したサービス関数が異常終了した
・サービス要求先のSPPが存在するノードに障害が発生した
・サービス要求先のSPPの処理完了前に異常終了した
・ネットワーク障害が発生した
上記の場合，サービス要求先のSPPから開始したトランザクションの処理はコミットされて，データベースが更新されていることがあります。データベースが更新されているかどうか確認してください。

このメソッドの呼び出し時，何らかの障害が発生した場合には例外が返されますが，その障害によってrapリスナー，rapサーバとの常設コネクションが切断されたかどうかは，その時点では判断できません。この場合，再びこのメソッドを呼び出すと，rapリスナー，rapサーバとの常設コネクションが切断されていればErrConnfreeExceptionが返されます。

このメソッドの呼び出し時，何らかの障害でrapリスナー，rapサーバとの常設コネクションが切断された場合，再びopenConnectionメソッドを呼び出してrapリスナー，rapサーバとの常設コネクションを確立する必要があります。

オートコネクトモードを使用した常設コネクションの場合，サービス要求送信時にrapサーバとのネットワーク障害が発生すると，一度だけリトライ処理を行います。リトライしてもコネクションが確立されない場合は，ErrNetDownExceptionが返されます。

スケジューラダイレクト機能を使用したRPC，およびネームサービスを使用したRPCでは，flags引数にDCRPC_CHAINEDを指定できません。リモートAPI機能を使用する場合は，flags引数にDCRPC_CHAINEDを指定できます。

●rpcCall

public void rpcCall(String group,
                   String service,
                   byte[] in_data,
                   byte[] out_data,
                   int flags)
            throws ErrInvalidArgsException,
                   ErrProtoException,
                   ErrNoBufsException,
                   ErrNetDownException,
                   ErrTimedOutException,
                   ErrMessageTooBigException,
                   ErrReplyTooBigException,
                   ErrNoSuchServiceGroupException,
                   ErrNoSuchServiceException,
                   ErrServiceClosedException,
                   ErrServiceTerminatingException,
                   ErrServiceNotUpException,
                   ErrNotUpException,
                   ErrSyserrAtServerException,
                   ErrSyserrException,
                   ErrNoBufsAtServerException,
                   ErrInvalidReplyException,
                   ErrInitializingException,
                   ErrTrnchkException,
                   ErrServerBusyException,
                   ErrSecchkException,
                   ErrServiceTerminatedException,
                   ErrIOErrException,
                   ErrTestmodeException,
                   ErrConnfreeException,
                   ErrHostUndefException,
                   ErrInvalidPortException

SPPのサービスを要求します。サービスグループ名とサービス名の組み合わせで識別されるサービス関数を呼び出し，その応答を受け取ります。このメソッドを呼び出したときに，目的のサービスグループが閉塞されているとErrServiceClosedExceptionが返されます。

flags引数にDCRPC_TPNOTRANを指定すると，トランザクションの処理からのRPCをトランザクションの処理ではないサービス要求にできます。

このメソッドを呼び出したときに，目的のサービスグループがdcsvstopコマンドなどで終了処理中，または終了している場合，ErrServiceTerminatingException，ErrServiceClosedException，またはErrNoSuchServiceGroupExceptionのどれかが返されます。どの例外が返されるかは，このメソッドを呼び出したタイミングによって異なります。

ソケット受信型サーバでは，ユーザサービス定義のmax_socket_msgおよびmax_socket_msglenオペランドの指定で電文の輻輳制御を行っています。そのためサーバがサービス要求を受信できない場合があります。この場合，このメソッドを呼び出すとErrServerBusyExceptionが返されます。この例外が返されたあと，適当な時間を置いてから再度このメソッドを呼び出すと，サービス要求できることがあります。

パラメタ

group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合，null以外の値を指定しても何も格納されません。

flags

RPCの形態を指定します。

DCNOFLAGS：同期応答型RPC

DCRPC_NOREPLY：非応答型RPC

DCRPC_CHAINED：連鎖型RPC

DCRPC_TPNOTRAN：トランザクションを引き継がないRPC

DCNOFLAGSまたはDCRPC_CHAINEDを指定すると，サーバから応答が返されるか，TP1/Client/J環境定義のdcwatchtimオペランドで指定した最大応答待ち時間が経過してタイムアウトになるまで，このメソッドは制御を戻しません。ただし，サービス要求先のSPPが異常終了した場合は，すぐに例外を返します。この場合，TP1/Client/J環境定義のdcwatchtimオペランドで指定された最大応答待ち時間によって，次の例外を返します。

1～65535の値を指定した場合
ErrTimedOutException

0を指定した場合
ErrServiceNotUpException

DCRPC_NOREPLYを指定すると，要求したサービスは応答を返さないサービスとみなされます。この場合，このメソッドはサービスの実行終了を待たないですぐに制御を戻します。このフラグを指定した場合，応答（out_data引数の指定値）と応答の長さ（out_len引数の指定値）は参照できません。さらに，サービス関数が実行されたかどうかはCUP側からはわかりません。

DCRPC_CHAINEDを指定すると，同じサービスグループに属するサービスを複数回要求する場合は，最初の要求時と同一のプロセスで実行されます。

連鎖型RPCを使用する場合，次に示す制限があります。

2回目以降のこのメソッドの呼び出しは，ユーザサーバおよびサービスの閉塞を検出できません。

2回目以降のこのメソッドの呼び出しでサービス関数の処理に異常が発生した場合，サービス単位ではなくユーザサーバ全体が閉塞します。

flags引数にDCRPC_CHAINEDを指定して呼び出したサービスの場合，最後のサービス要求ではDCNOFLAGSを指定してRPCを実行してください。最後のサービス要求でDCNOFLAGSを指定しないでcloseConnectionメソッドを呼び出すと，ErrTimedOutException，またはほかの例外が返されます。また，サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまでプロセスを占有されます。

リモートAPI機能を使用する場合は，flags引数にDCRPC_CHAINEDを指定できます。

連鎖型RPCは，次のどちらかの方法で終了させてください。
・連鎖型RPCを実行しているサービスグループに対して，flags引数にDCNOFLAGSを指定したrpcCallメソッド（同期応答型RPC）を実行する。※
・連鎖型RPCを実行しているグローバルトランザクションを同期点処理（コミット，またはロールバック）で完了させる。
注※
　同期応答型RPCを実行しないでcloseConnectionメソッド，またはrpcCloseメソッドを呼び出すと，TP1/Client/JのAPIは正常終了しますが，次の状態となります。
・グローバルトランザクションの範囲外の場合
　サービスを実行していたプロセスは連鎖型RPCタイムアウトになるまで占有されます。
・グローバルトランザクションの範囲内の場合
　暗黙的にコミットされ，連鎖型RPCを終了します。

DCRPC_TPNOTRANを指定すると，トランザクションの処理からのRPCは，トランザクションの処理にしないサービス要求になります。トランザクション外の処理からはDCRPC_TPNOTRANを指定できません。DCRPC_TPNOTRANは，DCNOFLAGS，DCRPC_NOREPLY，またはDCRPC_CHAINEDとあわせて指定できます。

（例）flags = TP1Client.DCNOFLAGS|TP1Client.DCRPC_TPNOTRAN;

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。この場合，詳細メッセージに誤った引数名が設定されます。

ErrProtoException

メソッドの発行順序に誤りがあります。openConnectionメソッドが呼び出されていません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNetDownException

ネットワーク障害が発生しました。または，通信先のTP1/Serverが稼働していません。

ErrTimedOutException

このメソッドの処理でタイムアウトが発生しました。または，サービス要求先SPPが処理を完了する前に異常終了しました。

ErrMessageTooBigException

in_len引数に指定した入力パラメタ長が最大値を超えています。

ErrReplyTooBigException

サーバから返された応答の長さが，CUPで用意した領域（out_data引数の指定値）の長さを超えています。

ErrNoSuchServiceGroupException

group引数に指定したサービスグループ名は定義されていません。

ErrNoSuchServiceException

service引数に指定したサービス名は定義されていません。

ErrServiceClosedException

service引数に指定したサービス名が存在するサービスグループは閉塞されています。

ErrServiceTerminatingException

service引数に指定したサービスは終了処理中です。

ErrServiceNotUpException

サービス要求したSPPは稼働していません。または，サービス要求したSPPが処理を完了する前に異常終了しました。この例外はTP1/Client/J環境定義にdcwatchtim=0を指定（応答を無限に待つ）した場合に返されます。

ErrNotUpException

指定したサービスが存在するノードのTP1/Serverが稼働していません。この場合，異常終了，停止中，終了処理中，およびネットワーク障害の発生が考えられます。

ErrSyserrAtServerException

指定したサービスでシステムエラーが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrNoBufsAtServerException

指定したサービスでメモリ不足が発生しました。

ErrInvalidReplyException

サービス関数が返した応答の長さが1からDCRPC_MAX_MESSAGE_SIZE※で指定した値までの範囲にありません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

ErrInitializingException

サービス要求したノードにあるTP1/Serverは開始処理中です。

ErrTrnchkException

ノード間負荷バランス機能を使用している環境で，複数のSPPのトランザクション属性が一致していません。または，負荷を分散する先のノードにあるTP1/Serverのバージョンが，TP1/Client/Jのバージョンよりも古いため，ノード間負荷バランス機能を実行できません。この例外は，ノード間負荷バランス機能を使用しているSPPにサービス要求した場合にだけ返されます。

ErrServerBusyException

サービス要求先のソケット受信型サーバが，サービス要求を受信できません。

ErrSecchkException

サービス要求先のSPPは，セキュリティ機能で保護されています。rpcCallメソッドを呼び出したCUPには，SPPへのアクセス権限がありません。

ErrServiceTerminatedException

サービス要求したSPPが，処理を完了する前に異常終了しました。この例外はrapリスナーサービス定義のrpc_extend_functionオペランドに00000001を指定した場合にだけ返されます。rpc_extend_functionオペランドに00000000を指定，またはオペランドを省略した場合は，ErrTimedOutExceptionまたはErrServiceNotUpExceptionが返されます。

ErrIOErrException

何らかの入出力例外が発生しました。rapサーバが問い合わせ間隔の時間監視でタイムアウトし，コネクションを切断したことも考えられます。

ErrTestmodeException

テストモードのSPPに対してサービス要求を行いました。

ErrConnfreeException

rapサーバとの常設コネクションが切断されました。または，TP1/Webとの擬似セションが切断されました。

ErrHostUndefException

次の要因が考えられます。

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか，または指定に誤りがあります。

TP1/Client/J環境定義のdcweburlオペランドに指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

ErrInvalidPortException

次の要因が考えられます。

リモートAPI機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcrapportオペランドが指定されていない

スケジューラダイレクト機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcscdportオペランドが指定されていない

注意事項

入力パラメタ（in_data引数の指定値）と，サービス関数の応答（out_data引数の指定値）に同じ領域を指定しないでください。

flags引数にDCRPC_NOREPLYを指定した場合，次の例外は返されません。

発生しない例外

ErrReplyTooBigException

ErrInvalidReplyException

発生しても検出できない例外

ErrNoSuchServiceException

ErrServiceClosedException

ErrServiceTerminatingException

ErrSyserrAtServerException

ErrNoBufsAtServerException

ErrNotUpException

ErrTimedOutExceptionが返される場合，次に示す要因が考えられます。
・TP1/Client/J環境定義またはTP1/Serverの定義で指定した最大応答待ち時間が短い
・サービス要求先のSPPから発行したサービス関数が異常終了した
・サービス要求先のSPPが存在するノードに障害が発生した
・サービス要求先のSPPの処理完了前に異常終了した
・ネットワーク障害が発生した
上記の場合，サービス要求先のSPPから開始したトランザクションの処理はコミットされて，データベースが更新されていることがあります。データベースが更新されているかどうか確認してください。

このメソッドの呼び出し時，何らかの障害が発生した場合には例外が返されますが，その障害によってrapリスナー，rapサーバとの常設コネクションが切断されたかどうかは，その時点では判断できません。この場合，再びこのメソッドを呼び出すと，rapリスナー，rapサーバとの常設コネクションが切断されていればErrConnfreeExceptionが返されます。

このメソッドの呼び出し時，何らかの障害でrapリスナー，rapサーバとの常設コネクションが切断された場合，再びopenConnectionメソッドを呼び出してrapリスナー，rapサーバとの常設コネクションを確立する必要があります。

オートコネクトモードを使用した常設コネクションの場合，サービス要求送信時にrapサーバとのネットワーク障害が発生した場合，一度だけリトライ処理を行います。リトライしてもコネクションが確立されない場合は，ErrNetDownExceptionが返されます。

スケジューラダイレクト機能を使用したRPC，およびネームサービスを使用したRPCでは，flags引数にDCRPC_CHAINEDを指定できません。リモートAPI機能を使用する場合は，flags引数にDCRPC_CHAINEDを指定できます。

●rpcCallTo

public void rpcCallTo(DCRpcBindTbl direction,
                   String group,
                   String service,
                   byte[] in_data,
                   int[] in_len,
                   byte[] out_data,
                   int[] out_len,
                   int flags)
            throws ErrInvalidArgsException,
                   ErrProtoException,
                   ErrNoBufsException,
                   ErrNetDownException,
                   ErrTimedOutException,
                   ErrMessageTooBigException,
                   ErrReplyTooBigException,
                   ErrNoSuchServiceGroupException,
                   ErrNoSuchServiceException,
                   ErrServiceClosedException,
                   ErrServiceTerminatingException,
                   ErrServiceNotUpException,
                   ErrNotUpException,
                   ErrSyserrAtServerException,
                   ErrSyserrException,
                   ErrNoBufsAtServerException,
                   ErrInvalidReplyException,
                   ErrInitializingException,
                   ErrTrnchkException,
                   ErrServerBusyException,
                   ErrSecchkException,
                   ErrServiceTerminatedException,
                   ErrIOErrException,
                   ErrTestmodeException,
                   ErrConnfreeException,
                   ErrHostUndefException,
                   ErrInvalidPortException

rpcCallメソッドと同様に，SPPのサービスを要求します。rpcCallToメソッドでは，サービスグループ名，サービス名，およびホスト名を検索のキーにして，該当するサービス関数をサービスの要求先に限定します。

このメソッドを呼び出す前にsetScdDirectObjectメソッドを呼び出し，DCRpcBindTblインスタンスを作成しておく必要があります。それ以外のインタフェースは，rpcCallメソッドと同じです。

パラメタ

direction

DCRpcBindTblオブジェクトを指定します。このメソッドを呼び出す前にsetScdDirectObjectメソッドを呼び出し，通信先情報を設定しておきます。

group

サービスグループ名を31文字以内の識別子で指定します。

service

サービス名を31文字以内の識別子で指定します。

in_data

サービスの入力パラメタを指定します。

in_len

サービスの入力パラメタ長を1からDCRPC_MAX_MESSAGE_SIZE※の指定値までの範囲で指定します。入力パラメタ長はin_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

out_data

サービス関数で指定した応答が返される領域を指定します。

非応答型RPCの場合はnullを指定します。非応答型RPCの場合，null以外の値を指定しても何も格納されません。

out_len

サービスの応答の長さを1からDCRPC_MAX_MESSAGE_SIZE※の指定値までの範囲で指定します。応答の長さはout_len[0]に格納してください。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

flags

RPCの形態を指定します。

DCNOFLAGS：同期応答型RPC

DCRPC_NOREPLY：非応答型RPC

戻り値

なし。

例外

rpcCallメソッドの例外と同じ。

注意事項

ソケット受信型のユーザサーバにサービス要求を行った場合，このメソッドは，ErrServiceNotUpExceptionを返します。

サービス要求先のTP1/Serverのバージョンは，03-03以降でなければなりません。これ以前のバージョンのTP1/Serverをサービス要求先に指定した場合は，動作の保証はできません。

このメソッドは，リモートAPI機能を使用したRPCでは使用できません。リモートAPI機能を使用しているときにこのメソッドを発行した場合，このメソッドは，ErrProtoExceptionを返します。

このメソッドは，連鎖型RPCでは使用できません。flags引数にDCRPC_CHAINEDを指定した場合，このメソッドはErrInvalidArgsExceptionを返します。

rpcCallToメソッドの呼び出し時は，TP1/Client/J環境定義の次のオペランドは参照されません。
・dchost
・dcscdport
・dcnamport
・dcscdloadpriority
また，setDchostメソッドで指定されたホスト名，ポート番号も参照されません。これらの指定値は，次回rpcCallメソッドの呼び出し時に有効になります。

サービス要求先のホスト名に誤りがあった場合，このメソッドはErrHostUndefExceptionを返します。

サービス要求先のポート番号に誤りがあった場合，このメソッドはErrInvalidPortExceptionを返します。

●setScdDirectObject

public DCRpcBindTbl setScdDirectObject(String scdhost,
                                     int scdport,
                                     int flags)

通信先スケジューラのホスト名，ポート番号を設定します。

パラメタ

scdhost

通信先スケジュールサーバのホスト名を指定します。不正なホスト名，およびnullが指定された場合，このメソッドのあとに呼び出すrpcCallToメソッドは，ErrHostUndefExceptionを返します。

scdport

通信先スケジュールサーバのポート番号を指定します。ポート番号は，5001から65535までの範囲で指定します。不正なポート番号が指定された場合，このメソッドのあとに呼び出すrpcCallToメソッドは，ErrInvalidPortExceptionを返します。

flags

DCNOFLAGSを指定します。

戻り値

DCRpcBindTblオブジェクト。

●trnBegin

public void trnBegin()
             throws ErrProtoException,
                    ErrTMException,
                    ErrRMException,
                    ErrNoBufsException,
                    ErrNotUpException,
                    ErrTimedOutException,
                    ErrIOErrException,
                    ErrConnfreeException,
                    ErrSyserrException,
                    ErrNetDownException,
                    ErrHostUndefException,
                    ErrInvalidPortException

グローバルトランザクションを，trnBeginメソッドを呼び出すTP1Clientオブジェクトから開始します。

このメソッドは，リモートAPI機能を使用する場合で，要求先TP1/Server Baseのバージョンが05-00以降のときだけ使用できます。

パラメタ

なし。

戻り値

なし。

例外

ErrProtoException

trnBeginメソッドを不正なコンテキストから呼び出しています。

ErrTMException

トランザクションサービスでエラーが発生したため，トランザクションは開始できませんでした。この例外が返されたあと，適当な時間を置いてから再度このメソッドを呼び出すと，トランザクションを開始できることがあります。

ErrRMException

リソースマネジャでエラーが発生しました。トランザクションは開始できませんでした。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrSyserrException

システムエラーが発生しました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrHostUndefException

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか，または指定に誤りがあります。

ErrInvalidPortException

通信先ポートが不正，または設定されていません。

●trnChainedCommit

public void trnChainedCommit()
                     throws ErrProtoException,
                            ErrRollbackException,
                            ErrHeuristicException,
                            ErrHazardException,
                            ErrNoBeginException,
                            ErrRollbackNoBeginException,
                            ErrHeuristicNoBeginException,
                            ErrHazardNoBeginException,
                            ErrNoBufsException,
                            ErrNotUpException,
                            ErrTimedOutException,
                            ErrIOErrException,
                            ErrConnfreeException,
                            ErrNetDownException,
                            ErrSyserrException

トランザクションの同期点を取得します。

trnChainedCommitメソッドが正常終了すると新しいグローバルトランザクションが発生し，以降実行するメソッドは新しいグローバルトランザクションの範囲になります。

パラメタ

なし。

戻り値

なし。

例外

ErrProtoException

trnChainedCommitメソッドを不正なコンテキストから呼び出しています。

ErrRollbackException

現在のトランザクションはコミットできないでロールバックしました。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

ErrHeuristicException

dc_trn_chained_commit関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

ErrNoBeginException

コミットまたはロールバック処理は正常に終了しましたが，新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrRollbackNoBeginException

コミットしようとしたトランザクションは，コミットできないでロールバックしました。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrHeuristicNoBeginException

dc_trn_chained_commit関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrHazardNoBeginException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

●trnChainedRollback

public void trnChainedRollback()
                       throws ErrProtoException,
                              ErrHeuristicException,
                              ErrHazardException,
                              ErrNoBeginException,
                              ErrHeuristicNoBeginException,
                              ErrHazardNoBeginException,
                              ErrNoBufsException,
                              ErrNotUpException,
                              ErrTimedOutException,
                              ErrIOErrException,
                              ErrConnfreeException,
                              ErrNetDownException,
                              ErrSyserrException

トランザクションをロールバックします。

trnChainedRollbackメソッドが正常終了すると，新しいグローバルトランザクションが発生し，以降呼び出すメソッドは新しいグローバルトランザクションの範囲になります。

パラメタ

なし。

戻り値

なし。

例外

ErrProtoException

trnChainedRollbackメソッドを不正なコンテキストから呼び出しています。

ErrHeuristicException

dc_trn_chained_rollback関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

ErrNoBeginException

コミットまたはロールバック処理は正常に終了しましたが，新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrHeuristicNoBeginException

dc_trn_chained_rollback関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrHazardNoBeginException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因となったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

●trnUnchainedCommit

public void trnUnchainedCommit()
                       throws ErrProtoException,
                              ErrRollbackException,
                              ErrHeuristicException,
                              ErrHazardException,
                              ErrNoBufsException,
                              ErrNotUpException,
                              ErrTimedOutException,
                              ErrIOErrException,
                              ErrConnfreeException,
                              ErrNetDownException,
                              ErrSyserrException

トランザクションの同期点を取得します。

trnUnchainedCommitメソッドが正常に終了すると，グローバルトランザクションは終了します。グローバルトランザクションの範囲外からは，SPPをトランザクションとして実行できません。

パラメタ

なし。

戻り値

なし。

例外

ErrProtoException

trnUnchainedCommitメソッドを不正なコンテキストから呼び出しています。

ErrRollbackException

現在のトランザクションは，コミットできないでロールバックしました。プロセスはトランザクションの範囲外です。

ErrHeuristicException

dc_trn_unchained_commit関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと，このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと，このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

●trnUnchainedRollback

public void trnUnchainedRollback()
                         throws ErrProtoException,
                                ErrHeuristicException,
                                ErrHazardException,
                                ErrNoBufsException,
                                ErrNotUpException,
                                ErrTimedOutException,
                                ErrIOErrException,
                                ErrConnfreeException,
                                ErrNetDownException,
                                ErrSyserrException

トランザクションをロールバックします。

trnUnchainedRollbackメソッドを呼び出すと，グローバルトランザクションは終了します。グローバルトランザクションの範囲外からは，SPPをトランザクションとして実行できません。

パラメタ

なし。

戻り値

なし。

例外

ErrProtoException

trnUnchainedRollbackメソッドを不正なコンテキストから呼び出しています。

ErrHeuristicException

dc_trn_unchained_rollback関数を実行したグローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと，このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrHazardException

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあと，このプロセスはトランザクション下にありません。プロセスはグローバルトランザクションの範囲外です。

ErrNoBufsException

メモリ不足が発生しました。

ErrNotUpException

TP1/Serverが稼働していません。

ErrTimedOutException

タイムアウトが発生しました。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrConnfreeException

CUP実行プロセス側から常設コネクションが解放されました。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

●trnInfo

public boolean trnInfo()

trnInfoメソッドを呼び出したTP1Clientオブジェクトが，現在トランザクションとして稼働しているかどうかを報告します。このメソッドは内部の変数を参照するだけで，rapサーバとは通信しません。

パラメタ

なし。

戻り値

true

trnInfoメソッドを呼び出したTP1Clientオブジェクトは，トランザクションの範囲内にあります。

false

trnInfoメソッドを呼び出したTP1Clientオブジェクトは，トランザクションの範囲外にあります。

例外

なし。

●getTrnID

public void getTrnID(byte[] gid,byte[] bid)
             throws ErrInvalidArgsException,
                    ErrProtoException

現在のトランザクショングローバル識別子，およびトランザクションブランチ識別子を取得します。このメソッドは内部の変数を参照するだけで，rapサーバとは通信しません。

現在のトランザクショングローバル識別子，およびトランザクションブランチ識別子は，次に示すメソッドを呼び出してトランザクションが起動したときに，TP1/Serverが割り当てたものです。

trnBeginメソッド

trnChainedCommitメソッド

trnChainedRollbackメソッド

パラメタ

gid

トランザクショングローバル識別子を格納する16バイト以上のbyte型配列を指定します。

bid

トランザクションブランチ識別子を格納する16バイト以上のbyte型配列を指定します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

getTrnIDメソッドを不正なコンテキストから呼び出しています。

●cltReceive

public void cltReceive(byte[]  buff,
                      int[]   recvleng,
                      int     timeout,
                      int     flags)
               throws ErrInvalidArgsException,
                      ErrProtoException,
                      ErrNetDownException,
                      ErrTimedOutException,
                      ErrSyserrException,
                      ErrInvalidPortException,
                      ErrConnfreeException

MHPが送信したメッセージを受信します。

cltReceiveメソッドを実行する場合，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定して，rpcOpenメソッドをあらかじめ実行しておく必要があります。

パラメタ

buff

受信したメッセージを格納する領域を指定します。recvlengで指定する長さ以上の領域を指定してください。メソッド実行後は受信したメッセージが返されます。

recvleng

recvleng[0]に受信するメッセージの長さを指定します。メソッド実行後は受信したメッセージの長さが返されます。

timeout

メッセージ受信時の最大待ち時間を，-1から65535までの整数（単位：秒）で指定します。

-1を指定した場合は，メッセージを受信するまで無制限に待ちます。

0を指定した場合は，メッセージの受信を待ちません。受信するメッセージがなかった場合は，ErrTimedOutExceptionが返されます。

1から65535を指定した場合は，指定した秒数だけメッセージの受信を待ちます。指定した秒数を過ぎてもメッセージを受信できない場合は，ErrTimedOutExceptionが返されます。

flags

メッセージ受信後に，コネクションを解放するかどうかを指定します。

DCNOFLAGS：メッセージ受信後，コネクションを解放しません。

DCNOFLAGSを指定した場合は，障害時を除き，rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_RCV_CLOSE：メッセージ受信後，コネクションを解放します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または，rpcOpenメソッドは実行されていますが，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVもしくはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrTimedOutException

メッセージ受信時にタイムアウトしました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

この例外は，TP1/Client/J環境定義のdcsockopenatrcvオペランドにYを指定し，dcrcvportオペランドに指定したポートがすでに使用中の場合に発生します。dcsockopenatrcvオペランドにNを指定した場合は，rpcOpenメソッドがErrFatalExceptionを返します。

ErrConnfreeException

MHPからコネクションが解放されました。

注意事項

cltReceiveメソッドは，次に示す場合にCUPに制御を戻します。

MHPからrecvleng引数で指定した長さ分のメッセージを受信した場合

MHPからのメッセージ受信時に，タイムアウトが発生した場合

MHPからコネクションが解放された場合

ネットワーク障害が発生した場合

cltReceiveメソッドの発行時に，MHPからコネクションが解放された場合，ErrConnfreeExceptionでエラーリターンします。

●cltSend

public void cltSend(byte[]  buff,
                   int     sendleng,
                   String  hostname,
                   int     portnum,
                   int     flags)
            throws ErrInvalidArgsException,
                   ErrProtoException,
                   ErrNetDownException,
                   ErrSyserrException,
                   ErrHostUndefException,
                   ErrInvalidPortException,
                   ErrConnRefusedException

MHPへメッセージを送信します。

cltSendメソッドを実行する場合，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定して，rpcOpenメソッドをあらかじめ実行しておく必要があります。

パラメタ

buff

送信するメッセージが格納されている領域を指定します。sendlengで指定する長さ以上の領域を指定してください。

sendleng

送信するメッセージの長さを指定します。

hostname

コネクションが確立されていない場合，接続するMHPが存在するノードのホスト名を指定します。

nullを指定した場合は，rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndhostオペランドの内容を参照します。

また，ホスト名として，10進ドット記法のIPアドレスを指定することもできます。

コネクションが確立されている場合，この引数は無視されます。

portnum

コネクションが確立されていない場合，接続するMHPのポート番号を，0から65535までの整数で指定します。

0を指定すると，rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndportオペランドの内容を参照します。

コネクションが確立されている場合，この引数は無視されます。

flags

メッセージ送信後にコネクションを解放するかどうかを指定します。

DCNOFLAGS：メッセージ送信後，コネクションを解放しません。

DCNOFLAGSを指定した場合は，障害時を除き，rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_SND_CLOSE：メッセージ送信後，コネクションを解放します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または，rpcOpenメソッドは実行されていますが，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDもしくはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrHostUndefException

hostname引数の指定に誤りがあります。または，hostname引数およびTP1/Client/J環境定義のdcsndhostオペランドの両方にホスト名が指定されていません。

ErrInvalidPortException

portnum引数の指定に誤りがあります。

ErrConnRefusedException

MHPに対するコネクションの確立要求が拒否されました（接続を待ち受けていないポートに対してコネクションを確立しようとしました）。

注意事項

cltSendメソッドを実行してメッセージを送信しているときに，MHPからコネクションが解放されると，次に実行するcltSendメソッドは正常終了または異常終了します。正常終了した場合は，その次に実行するcltSendメソッドで初めて異常終了します。そのため，CUPを作成するときは注意してください。

●cltAssemSend

public void cltAssemSend(byte[] buff,
                        int sendleng,
                        String hostname,
                        int portnum,
                        int timeout,
                        int flags)
                 throws ErrInvalidArgsException,
                        ErrProtoException,
                        ErrNetDownException,
                        ErrSyserrException,
                        ErrHostUndefException,
                        ErrInvalidPortException,
                        ErrConnRefusedException,
                        ErrTimedOutException,
                        ErrConnfreeException,
                        ErrInvalidMessageException,
                        ErrCollisionMessageException

受信メッセージの組み立て機能を使用してメッセージを送信します。

cltAssemSendメソッドを実行する場合，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定して，rpcOpenメソッドをあらかじめ実行しておく必要があります。

受信メッセージの組み立て機能を使用した場合，メッセージの先頭4バイトにメッセージ長（4＋sendleng引数の指定値）を付けて，buff[0]～buff[sendleng－1]の長さのメッセージを送信します。

相手システムとのコネクションが確立されていない場合，hostname引数およびportnum引数の指定に従ってコネクションを確立し，メッセージを送信します。

パラメタ

buff

送信するメッセージが格納されている領域を指定します。sendleng引数で指定する長さ以上の領域を指定してください。

sendleng

送信するメッセージの長さを指定します。

hostname

コネクションが確立されていない場合，接続する相手システムのホスト名を指定します。

nullを指定した場合は，rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndhostオペランドの内容を参照します。

ホスト名として，10進ドット記法のIPアドレスを指定することもできます。コネクションが確立されている場合，この引数は無視されます。

portnum

コネクションが確立されていない場合，接続する相手システムのポート番号を，0から65535までの整数で指定します。

0を指定すると，rpcOpenメソッドを実行したときに取得したTP1/Client/J環境定義のdcsndportオペランドの内容を参照します。コネクションが確立されている場合，この引数は無視されます。

timeout

予約引数です。0を指定してください。

flags

メッセージ送信後にコネクションを解放するかどうかを指定します。

DCNOFLAGS：メッセージ送信後，コネクションを解放しません。

DCNOFLAGSを指定した場合は，障害時を除き，rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_SND_CLOSE：メッセージ送信後，コネクションを解放します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または，rpcOpenメソッドは実行されていますが，TP1/Client/J環境定義のdcsndrcvtypeオペランドでDCCLT_ONEWAY_SNDまたはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrHostUndefException

接続する相手システムのホスト名に誤りがあります。または，hostname引数およびTP1/Client/J環境定義のdcsndhostオペランドの両方にホスト名が指定されていません。

ErrInvalidPortException

portnum引数の指定に誤りがあります。

ErrConnRefusedException

相手システムに対するコネクションの確立要求が拒否されました（接続を待ち受けていないポートに対してコネクションを確立しようとしました）。

ErrTimedOutException

応答メッセージの受信時に，タイムアウトが発生しました。コネクションは解放されます。

ErrConnfreeException

相手システムからコネクションが解放されました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrCollisionMessageException

送受信メッセージの衝突が発生しました。

注意事項

cltAssemSendメソッドを実行してメッセージを送信するときに，相手システムからコネクションが解放されると，次に実行するcltAssemSendメソッドは正常終了または異常終了します。正常終了した場合は，その次に実行するcltAssemSendメソッドで初めて異常終了します。そのため，CUPを作成するときは注意してください。

●cltAssemReceive

public void cltAssemReceive(byte[] buff,
                           int[] recvleng,
                           int timeout,
                           int flags)
                    throws ErrInvalidArgsException,
                           ErrProtoException,
                           ErrNetDownException,
                           ErrTimedOutException,
                           ErrSyserrException,
                           ErrInvalidPortException,
                           ErrConnfreeException,
                           ErrInvalidMessageException,
                           ErrBufferOverflowException

受信メッセージの組み立て機能を使用してメッセージを受信します。

cltAssemReceiveメソッドを実行する場合，TP1/Client/J環境定義のdcsndrcvtypeオペランドにDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定して，rpcOpenメソッドをあらかじめ実行しておく必要があります。

受信メッセージの組み立て機能を使用した場合，メッセージの先頭4バイトは，buff引数に指定されたバッファに格納されません。

このメソッドが正常終了した場合，recvleng[0]の長さのユーザデータを含むメッセージを受信し，ユーザデータがbuff[0]～buff[recvleng[0]－1]に格納されます。

パラメタ

buff

受信したメッセージを格納する領域を指定します。受信するメッセージの長さ以上の領域を指定してください。

recvleng

メソッド実行後に，受信したメッセージの長さがrecvleng[0]に返されます。

timeout

メッセージ受信時の最大待ち時間を，-1から65535までの整数（単位：秒）で指定します。

-1を指定した場合は，メッセージを受信するまで無制限に待ちます。

0を指定した場合は，メッセージの受信を待ちません。受信するメッセージがなかった場合は，ErrTimedOutExceptionが返されます。

1から65535を指定した場合は，指定した秒数だけメッセージの受信を待ちます。指定した秒数を過ぎてもメッセージを受信できない場合は，ErrTimedOutExceptionが返されます。

flags

メッセージを受信後に，コネクションを解放するかどうかを指定します。

DCNOFLAGS：メッセージ受信後，コネクションを解放しません。

DCNOFLAGSを指定した場合は，障害時を除き，rpcCloseメソッドを実行するまでコネクションを解放しません。

DCCLT_RCV_CLOSE：メッセージ受信後，コネクションを解放します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。または，rpcOpenメソッドは実行されていますが，TP1/Client/J環境定義のdcsndrcvtypeオペランドでDCCLT_ONEWAY_RCVまたはDCCLT_SNDRCVを指定していません。

ErrNetDownException

ネットワーク障害が発生しました。

ErrTimedOutException

メッセージの受信時にタイムアウトが発生しました。

ErrSyserrException

システムエラーが発生しました。

ErrInvalidPortException

この例外は，TP1/Client/J環境定義のdcsockopenatrcvオペランドにYを指定し，dcrcvportオペランドに指定したポートがすでに使用中の場合に発生します。dcsockopenatrcvオペランドにNを指定した場合は，rpcOpenメソッドがErrFatalExceptionを返します。

ErrConnfreeException

相手システムからコネクションが解放されました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrBufferOverflowException

buff引数の指定値を超える長さのメッセージを受信しました。

注意事項

cltAssemReceiveメソッドは，次に示す場合にCUPに制御を戻します。

メッセージ受信が完了した場合

buff引数の指定値を超える長さのメッセージを受信した場合

ネットワーク障害が発生した場合

メッセージ受信時に，タイムアウトが発生した場合

相手システムからコネクションが解放された場合

不正なメッセージ長のメッセージを受信した場合

不正なセグメント情報のメッセージを受信した場合

cltAssemReceiveメソッドの発行時に，相手システムからコネクションが解放された場合，ErrConnfreeExceptionでエラーリターンします。

●setConnectInformation

public void setConnectInformation(byte[] inf,
                                 short inf_len)
                          throws ErrInvalidArgsException

端末識別情報を設定します。

このメソッドに指定した端末識別情報は，TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を，dchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定し，次のどちらかの方法でDCCM3論理端末との常設コネクションを確立した場合に有効となります。

openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合，引数hostにDCCM3論理端末のホスト名，引数portにDCCM3論理端末のポート番号を指定します。

TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し，rpcCallメソッドを呼び出します。

このメソッドを呼び出した場合，TP1/Client/J環境定義のdccltconnectinfオペランドに指定した端末識別情報は，再びrpcOpenメソッドを呼び出すまで無視されます。

なお，このメソッドに指定した端末識別情報は，DCCM3論理端末との常設コネクション確立時に認識されます。このメソッドを複数回呼び出した場合は，DCCM3論理端末との常設コネクションを確立する直前に指定した端末識別情報が有効となります。

また，ネームサービスを使用したRPC，またはスケジューラダイレクト機能を使用したRPCの場合は，このメソッドで指定した端末識別情報は無視されます。

パラメタ

inf

端末識別情報として，DCCM3論理端末の論理端末名称を64バイト以内のEBCDIKコードで指定します。ただし，DCCM3側では先頭8バイト目までに指定した値だけが有効になり，9バイト目以降に指定した値は無視されます。

inf_len

端末識別情報長を指定します。1から64までの範囲のバイト長を指定します。

戻り値

なし。

例外

ErrInvalidArgsException

引数の指定に誤りがあります。

●acceptNotification

public void acceptNotification(
                              byte[] inf,
                              int[] inf_len,
                              int port,
                              int timeout,
                              byte[] hostname,
                              byte[] nodeid)
                      throws  ErrInvalidArgsException,
                              ErrProtoException,
                              ErrIOErrException,
                              ErrSecurityException,
                              ErrInvalidPortException,
                              ErrTimedOutException,
                              ErrNetDownException,
                              ErrInvalidMessageException,
                              ErrAcceptCanceledException,
                              ErrReplyTooBigException,
                              ErrVersionException,
                              ErrSyserrException

サーバ側の関数（dc_rpc_cltsend関数）によって通知されるメッセージを，timeout引数に指定した時間まで待ち続けます。メッセージを受信した時点でCUPに制御を戻し，通知メッセージ，通知メッセージ長，通知元サーバのホスト名，および通知元サーバのノード識別子を返します。

パラメタ

inf

サーバからの通知メッセージを格納する領域を指定します。

メソッドが正常終了した場合，サーバからの通知メッセージが格納されます。

inf_len

サーバからの通知メッセージを格納する領域の長さ（inf引数の長さ）を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。

ただし，TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合，指定できる値の最大値は，DCRPC_MAX_MESSAGE_SIZEの値（1メガバイト）ではなく，TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

メソッドが正常終了した場合，サーバからの通知メッセージ長が格納されます。

port

サーバからの通知メッセージを受信するポート番号を，5001から65535の範囲で指定します。

同一マシン内で，複数のプロセス，または複数のスレッドを同時に実行する場合，port引数にはそれぞれ異なるポート番号を指定してください。また，port引数に指定できるポート番号でも，OS，またはほかのプログラムが使用するポート番号は指定しないでください。指定した場合，応答データを正しく受信できないことがあります。なお，OSが使用するポート番号は，OSごとに異なります。OSが使用するポート番号については，ご利用のOSの関連ドキュメントを参照してください。

timeout

タイムアウト値を，0から65535（単位：秒）の範囲で指定します。0を指定した場合，無限に待ち続けます。

hostname

通知してきたサーバのホスト名を格納する領域を指定します。256バイト以上を指定してください。

メソッドが正常終了した場合，通知元サーバのホスト名が格納されます。TP1/Client/Jは，java.net.InetAddressクラスのgetHostNameメソッドで通知元サーバのIPアドレスからホスト名を取得し，プラットフォームのデフォルトの文字セットを使用して，取得したホスト名をバイト配列に変換します。この結果が，hostnameに格納されます。通知元サーバのIPアドレスからホスト名への変換に失敗した場合，10進ドット記法（例：10.209.15.124）のIPアドレスをhostnameに格納します。

nullを指定した場合，通知してきたサーバのホスト名を格納しません。

nodeid

通知してきたサーバのノード識別子を格納する領域を指定します。8バイト以上を指定してください。

メソッドが正常終了した場合，通知元サーバのノード識別子が格納されます。ノード識別子のフォーマットは，次のとおりです。

戻り値

なし。

例外

ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

ErrInvalidPortException

port引数で指定したポート番号は使用中です。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrAcceptCanceledException

一方通知受信待ち状態がcancelNotificationメソッドで解除されました。このとき，inf引数，inf_len引数，およびhostname引数にはすでに値が設定されています。nodeid引数には，先頭から8バイト目まで0で初期化された値が設定されます。

ErrReplyTooBigException

受信したメッセージが，CUPで用意した領域に収まりません。収まらないメッセージを切り捨てました。このとき，hostname引数およびnodeid引数には，すでに値を設定されています。

ErrVersionException

通知元サーバのバージョンが不正です。

ErrSyserrException

システムエラーが発生しました。

●cancelNotification

public void cancelNotification(
                              byte[] inf,
                              int inf_len,
                              String hostname,
                              int port)
                      throws  ErrInvalidArgsException,
                              ErrProtoException,
                              ErrIOErrException,
                              ErrInvalidPortException,
                              ErrTimedOutException,
                              ErrNetDownException,
                              ErrHostUndefException,
                              ErrSyserrException

サーバからの一方通知受信待ち状態（acceptNotificationメソッド，またはacceptNotificationChainedメソッドの発行）を解除します。解除するときに，inf引数に指定したメッセージを，一方通知受信待ち状態のCUPに通知できます。

パラメタ

inf

CUPに通知するメッセージを指定します。

inf_len

CUPに通知するメッセージ長（inf引数の長さ）を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。0を指定した場合はCUPにメッセージを通知しません。

ただし，TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合，指定できる値の最大値はDCRPC_MAX_MESSAGE_SIZEの値（1メガバイト）ではなく，TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

hostname

一方通知受信待ち状態のCUPが存在するホスト名を指定します。ホスト名として，10進ドット記法（例：10.209.15.124）のIPアドレスを指定することもできます。

port

一方通知受信待ち状態のCUPのポート番号を，5001から65535の範囲で指定します

戻り値

なし。

例外

ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrInvalidPortException

port引数で指定したポート番号が不正です。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

CUP間でネットワーク障害が発生しました。

ErrHostUndefException

hostname引数で指定したホスト名が不正です。

ErrSyserrException

システムエラーが発生しました。

●openNotification

public void openNotification(int port)
                    throws  ErrInvalidArgsException,
                            ErrProtoException,
                            ErrInvalidPortException,
                            ErrNetDownException,
                            ErrSyserrException

一方通知連続受信機能を使用するための環境を作成します。このメソッドは，closeNotificationメソッドと対で発行します。このメソッドが正常終了した場合は，必ずcloseNotificationメソッドを発行してください。

パラメタ

port

サーバからの通知メッセージを受信するポート番号を，5001から65535の範囲で指定します。

同一マシン内で，複数のプロセス，または複数のスレッドを同時に実行する場合，port引数にはそれぞれ異なるポート番号を指定してください。また，port引数に指定できるポート番号でも，OS，またはほかのプログラムが使用するポート番号は指定しないでください。指定した場合，応答データを正しく受信できないことがあります。なお，OSが使用するポート番号は，OSごとに異なります。OSが使用するポート番号については，ご利用のOSの関連ドキュメントを参照してください。

戻り値

なし。

例外

ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

rpcOpenメソッドが実行されていない，またはopenNotificationメソッドがすでに実行されています。

ErrInvalidPortException

port引数で指定したポート番号は，すでに使用されています。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

●acceptNotificationChained

public void acceptNotificationChained(
                                     byte[] inf,
                                     int[] inf_len,
                                     int timeout,
                                     byte[] hostname,
                                     byte[] nodeid)
                             throws  ErrInvalidArgsException,
                                     ErrProtoException,
                                     ErrIOErrException,
                                     ErrSecurityException,
                                     ErrTimedOutException,
                                     ErrNetDownException,
                                     ErrInvalidMessageException,
                                     ErrAcceptCanceledException,
                                     ErrReplyTooBigException,
                                     ErrVersionException,
                                     ErrSyserrException

サーバ側の関数（dc_rpc_cltsend関数）によって通知されるメッセージを，timeout引数で指定した時間まで待ち続けます。メッセージを受信した時点でCUPに制御を戻し，通知メッセージ，通知メッセージ長，通知元サーバのホスト名，および通知元サーバのノード識別子を返します。このメソッドを発行するときは，あらかじめopenNotificationメソッドを発行しておく必要があります。このメソッドは，openNotificationメソッドからcloseNotificationメソッドまでの間で発行できます。

パラメタ

inf

サーバからの通知メッセージを格納する領域を指定します。

メソッドが正常終了した場合，サーバからの通知メッセージが格納されます。

inf_len

サーバからの通知メッセージを格納する領域の長さ（inf引数の長さ）を指定します。0からDCRPC_MAX_MESSAGE_SIZEの範囲で指定します。

ただし，TP1/Client/J環境定義dccltrpcmaxmsgsizeに2以上を指定した場合，指定できる値の最大値はDCRPC_MAX_MESSAGE_SIZEの値（1メガバイト）ではなく，TP1/Client/J環境定義dccltrpcmaxmsgsizeに指定した値になります。

メソッドが正常終了した場合，サーバからの通知メッセージ長が格納されます。

timeout

タイムアウト値を，0から65535（単位：秒）の範囲で指定します。0を指定した場合，無限に待ち続けます。

hostname

通知してきたサーバのホスト名を格納する領域を指定します。256バイト以上を指定してください。

メソッドが正常終了した場合，通知元サーバのホスト名が格納されます。

TP1/Client/Jは，java.net.InetAddressクラスのgetHostNameメソッドで通知元サーバのIPアドレスからホスト名を取得し，プラットフォームのデフォルトの文字セットを使用して，取得したホスト名をバイト配列に変換します。この結果が，hostnameに格納されます。通知元サーバのIPアドレスからホスト名への変換に失敗した場合，10進ドット記法（例：10.209.15.124)のIPアドレスをhostnameに格納します。

nullを指定した場合，通知してきたサーバのホスト名を格納しません。

nodeid

通知してきたサーバのノード識別子を格納する領域を指定します。8バイト以上を指定してください。

メソッドが正常終了した場合，通知元サーバのノード識別子が格納されます。ノード識別子のフォーマットは，次のとおりです。

戻り値

なし。

例外

ErrInvalidArgsException

メソッドの引数の指定に誤りがあります。

ErrProtoException

openNotificationメソッドが実行されていません。

ErrIOErrException

何らかの入出力例外が発生しました。

ErrSecurityException

セキュリティ例外が発生しました。

ErrClientTimedOutException

TP1/Client/Jでタイムアウトが発生しました。

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrInvalidMessageException

不正なメッセージを受信しました。

ErrAcceptCanceledException

一方通知受信待ち状態がcancelNotificationメソッドによって解除されました。このとき，inf引数，inf_len引数，およびhostname引数には，すでに値が設定されています。nodeid引数は，先頭から8バイト目まで0で初期化された値が設定されます。

ErrReplyTooBigException

受信したメッセージが，CUPで用意した領域に収まりません。収まらないメッセージは切り捨てました。このとき，hostname引数およびnodeid引数にはすでに値が設定されています。

ErrVersionException

通知元サーバのバージョンが不正です。

ErrSyserrException

システムエラーが発生しました。

●closeNotification

public void closeNotification()
                     throws  ErrNetDownException,
                             ErrSyserrException

一方通知連続受信機能を使用するための環境を削除します。このメソッドは，openNotificationメソッドと対で発行します。openNotificationメソッドが正常終了した場合は，必ずこのメソッドを発行してください。

パラメタ

なし。

戻り値

なし。

例外

ErrNetDownAtClientException

TP1/ServerとCUPの間でネットワーク障害が発生しました。

ErrSyserrException

システムエラーが発生しました。

クラス DCRpcBindTbl

public class DCRpcBindTbl
extends java.lang.Object

通信先情報を管理するクラスです。rpcCallToメソッドで使用します。

コンストラクタ

●DCRpcBindTbl

public DCRpcBindTbl()

通信先情報を管理するクラスのインスタンスを作成します。

クラス ErrAcceptCanceledException

public class ErrAcceptCanceledException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

一方通知受信待ち状態が解除されました。

コンストラクタ

●ErrAcceptCanceledException

public ErrAcceptCanceledException()

詳細メッセージなしでErrAcceptCanceledExceptionクラスのインスタンスを作成します。

クラス ErrBufferOverflowException

public class ErrBufferOverflowException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

cltAssemReceiveメソッドに指定した受信バッファの長さを超えるメッセージを受信したため，受信バッファオーバーフローが発生しました。

コンストラクタ

●ErrBufferOverflowException

public ErrBufferOverflowException()

詳細メッセージなしでErrBufferOverflowExceptionクラスのインスタンスを作成します。

クラス ErrCollisionMessageException

public class ErrCollisionMessageException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

送受信メッセージの衝突が発生しました。

コンストラクタ

●ErrCollisionMessageException

public ErrCollisionMessageException()

詳細メッセージなしでErrCollisionMessageExceptionのインスタンスを作成します。

クラス ErrClientTimedOutException

public class ErrClientTimedOutException
extends ErrTimedOutException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

TP1/Client/J側でタイムアウトが発生しました。

関連項目

TP1Client，TP1ClientException，ErrTimedOutException

コンストラクタ

●ErrClientTimedOutException

public ErrClientTimedOutException()

詳細メッセージなしでErrClientTimedOutExceptionのインスタンスを作成します。

クラス ErrConnfreeException

public class ErrConnfreeException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

rpcCallメソッドがこの例外を返した場合

rapサーバとの常設コネクションが切断されました。または，TP1/Webとの擬似セションが切断されました。

trnBeginメソッド，trnChainedCommitメソッド，trnChainedRollbackメソッド，trnUnchainedCommitメソッド，またはtrnUnchainedRollbackメソッドがこの例外を返した場合

CUP実行プロセス側から常設コネクションが解放されました。

cltReceiveメソッドがこの例外を返した場合

MHPからコネクションが解放されました。

cltAssemSendメソッドまたはcltAssemReceiveメソッドがこの例外を返した場合

相手システムからコネクションが解放されました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrConnfreeException

public ErrConnfreeException()

詳細メッセージなしでErrConnfreeExceptionのインスタンスを作成します。

クラス ErrConnRefusedException

public class ErrConnRefusedException
extends Exception

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

リモートなアドレスおよびポートに対するソケットの接続の試行中にエラーが発生したことを通知します。

一般的には，接続がリモートで拒否された（リモートのアドレスとポートで待機中のプロセスがない）ことが原因です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrConnRefusedException

public ErrConnRefusedException()

詳細メッセージなしでErrConnRefusedExceptionのインスタンスを作成します。

クラス ErrFatalException

public class ErrFatalException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

TP1/Client/J環境定義の指定に誤りがあります。または，TP1/Serverとの通信環境の初期化に失敗しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrFatalException

public ErrFatalException()

詳細メッセージなしでErrFatalExceptionのインスタンスを作成します。

クラス ErrHazardException

public class ErrHazardException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrHazardException

public ErrHazardException()

詳細メッセージなしでErrHazardExceptionのインスタンスを作成します。

クラス ErrHazardNoBeginException

public class ErrHazardNoBeginException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

グローバルトランザクションのトランザクションブランチがヒューリスティックに完了しました。しかし，障害のため，ヒューリスティックに完了したトランザクションブランチの同期点の結果がわかりません。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrHazardNoBeginException

public ErrHazardNoBeginException()

詳細メッセージなしでErrHazardNoBeginExceptionのインスタンスを作成します。

クラス ErrHeuristicException

public class ErrHeuristicException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

グローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルを参照してください。この例外が返されたあとも，このプロセスはトランザクション下にあり，グローバルトランザクションの範囲内です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrHeuristicException

public ErrHeuristicException()

詳細メッセージなしでErrHeuristicExceptionのインスタンスを作成します。

クラス ErrHeuristicNoBeginException

public class ErrHeuristicNoBeginException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

グローバルトランザクションは，ヒューリスティック決定のため，あるトランザクションブランチはコミット，あるトランザクションブランチはロールバックしました。この例外は，ヒューリスティック決定の結果がグローバルトランザクションの同期点の結果と一致しない場合に返されます。この例外が返される原因になったUAP，リソースマネジャ，およびグローバルトランザクションの同期点の結果は，TP1/Serverのメッセージログファイルの内容を参照してください。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrHeuristicNoBeginException

public ErrHeuristicNoBeginException()

詳細メッセージなしでErrHeuristicNoBeginExceptionのインスタンスを作成します。

クラス ErrHostUndefException

public class ErrHostUndefException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

setDchostメソッドがこの例外を返した場合

host引数の指定に誤りがあります。

openConnectionメソッドがこの例外を返した場合

rapリスナーのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていません。

url引数またはTP1/Client/J環境定義のdcweburlオペランドに指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

host引数の指定に誤りがあります。

rpcCallメソッドがこの例外を返した場合

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか，または指定に誤りがあります。

TP1/Client/J環境定義のdcweburlオペランドに指定されたURL（プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報）に誤りがあります。

trnBeginメソッドがこの例外を返した場合

通信先となるTP1/Serverのホスト名がTP1/Client/J環境定義のdchostオペランドに指定されていないか，または指定に誤りがあります。

cltSendメソッド，またはcltAssemSendメソッドがこの例外を返した場合

hostname引数の指定に誤りがあるか，または，hostname引数およびTP1/Client/J環境定義のdcsndhostオペランドの両方にホスト名が指定されていません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrHostUndefException

public ErrHostUndefException()

詳細メッセージなしでErrHostUndefExceptionのインスタンスを作成します。

クラス ErrInitializingException

public class ErrInitializingException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス要求したノードにあるTP1/Serverは開始処理中です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrInitializingException

public ErrInitializingException()

詳細メッセージなしでErrInitializingExceptionのインスタンスを作成します。

クラス ErrInvalidArgsException

public class ErrInvalidArgsException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

メソッドの引数の指定に誤りがあります。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrInvalidArgsException

public ErrInvalidArgsException()

詳細メッセージなしでErrInvalidArgsExceptionのインスタンスを作成します。

●ErrInvalidArgsException

public ErrInvalidArgsException(String msg)

詳細メッセージ付きでTP1ClientExceptionのインスタンスを作成します。詳細メッセージはgetMessageメソッドで取り出せます。

クラス ErrInvalidMessageException

public class ErrInvalidMessageException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

cltAssemReceiveメソッドがこの例外を返した場合

受信メッセージのメッセージ長が0x00000005～0x7FFFFFFFにありません。

セグメント情報が不正です。

cltAssemSendメソッドがこの例外を返した場合

応答受信時に受信したメッセージのメッセージ長が0x0000000B～0x7FFFFFFFか，または，セグメント情報が不正です。

コンストラクタ

●ErrInvalidMessageException

public ErrInvalidMessageException()

詳細メッセージなしでErrInvalidMessageExceptionクラスのインスタンスを作成します。

クラス ErrInvalidPortException

public class ErrInvalidPortException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

setDchostメソッド，openConnectionメソッド，またはtrnBeginメソッドがこの例外を返した場合

port引数の指定に誤りがあります。

rpcCallメソッドがこの例外を返した場合

リモートAPI機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcrapportオペランドが指定されていません。

スケジューラダイレクト機能を使用したRPCを行う場合，TP1/Client/J環境定義のdcscdportオペランドが指定されていません。

cltSendメソッドまたはcltAssemSendメソッドがこの例外を返した場合

portnum引数の指定に誤りがあります。

cltReceiveメソッドまたはcltAssemReceiveメソッドがこの例外を返した場合

TP1/Client/J環境定義のdcsockopenatrcvオペランドにYを指定し，dcrcvportオペランドに指定したポートがすでに使用中の場合に発生します。dcsockopenatrcvオペランドにNを指定した場合は，rpcOpenメソッドがErrFatalExceptionを返します。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrInvalidPortException

public ErrInvalidPortException()

詳細メッセージなしでErrInvalidPortExceptionのインスタンスを作成します。

クラス ErrInvalidReplyException

public class ErrInvalidReplyException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス関数が返した応答の長さが1からDCRPC_MAX_MESSAGE_SIZE※で指定した値までの範囲にありません。

注※

dccltrpcmaxmsgsizeオペランドを使用した場合，DCRPC_MAX_MESSAGE_SIZEの値ではなく，dccltrpcmaxmsgsizeオペランドに指定した値になります。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrInvalidReplyException

public ErrInvalidReplyException()

詳細メッセージなしでErrInvalidReplyExceptionのインスタンスを作成します。

クラス ErrIOErrException

public class ErrIOErrException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

何らかの入出力例外が発生しました。詳細は各メソッドの例外および注意事項を参照してください。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrIOErrException

public ErrIOErrException()

詳細メッセージなしでErrIOErrExceptionのインスタンスを作成します。

クラス ErrMessageTooBigException

public class ErrMessageTooBigException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

rpcCallメソッドのin_len引数に指定した入力パラメタ長が最大値を超えています。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrMessageTooBigException

public ErrMessageTooBigException()

詳細メッセージなしでErrMessageTooBigExceptionのインスタンスを作成します。

クラス ErrNetDownAtClientException

public class ErrNetDownAtClientException
extends ErrNetDownException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

TP1/ServerとCUPの間でネットワーク障害が発生しました。

関連項目

TP1Client，TP1ClientException，ErrNetDownException

コンストラクタ

●ErrNetDownAtClientException

public ErrNetDownAtClientException()

詳細メッセージなしでErrNetDownAtClientExceptionのインスタンスを作成します。

クラス ErrNetDownAtServerException

public class ErrNetDownAtServerException
extends ErrNetDownException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

TP1/ServerとSPPの間でネットワーク障害が発生しました。

関連項目

TP1Client，TP1ClientException，ErrNetDownException

コンストラクタ

●ErrNetDownAtServerException

public ErrNetDownAtServerException()

詳細メッセージなしでErrNetDownAtServerExceptionのインスタンスを作成します。

クラス ErrNetDownException

直系の既知のサブクラス

ErrNetDownAtClientException
ErrNetDownAtServerException

public class ErrNetDownException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

ネットワーク障害が発生しました。または，通信先のTP1/Serverが稼働していません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNetDownException

public ErrNetDownException()

詳細メッセージなしでErrNetDownExceptionのインスタンスを作成します。

クラス ErrNoBeginException

public class ErrNoBeginException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

コミットまたはロールバック処理は正常に終了しましたが，新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNoBeginException

public ErrNoBeginException()

詳細メッセージなしでErrNoBeginExceptionのインスタンスを作成します。

クラス ErrNoBufsAtServerException

public class ErrNoBufsAtServerException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

指定したサービスでメモリ不足が発生しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNoBufsAtServerException

public ErrNoBufsAtServerException()

詳細メッセージなしでErrNoBufsAtServerExceptionのインスタンスを作成します。

クラス ErrNoBufsException

public class ErrNoBufsException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

メモリ不足が発生しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNoBufsException

public ErrNoBufsException()

詳細メッセージなしでErrNoBufsExceptionのインスタンスを作成します。

クラス ErrNoSuchServiceException

public class ErrNoSuchServiceException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

service引数に指定したサービス名は定義されていません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNoSuchServiceException

public ErrNoSuchServiceException()

詳細メッセージなしでErrNoSuchServiceExceptionのインスタンスを作成します。

クラス ErrNoSuchServiceGroupException

public class ErrNoSuchServiceGroupException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

group引数に指定したサービスグループ名は定義されていません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNoSuchServiceGroupException

public ErrNoSuchServiceGroupException()

詳細メッセージなしでErrNoSuchServiceGroupExceptionのインスタンスを作成します。

クラス ErrNotTrnExtendException

public class ErrNotTrnExtendException
extends ErrSyserrException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

トランザクション処理の連鎖型RPCを使用したあとで，flags引数にDCRPC_TPNOTRANを指定したサービスを要求しています。

関連項目

TP1Client，TP1ClientException，ErrSyserrException

コンストラクタ

●ErrNotTrnExtendException

public ErrNotTrnExtendException()

詳細メッセージなしでErrNotTrnExtendExceptionのインスタンスを作成します。

クラス ErrNotUpException

public class ErrNotUpException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

指定したサービスが存在するノードのTP1/Serverが稼働していません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrNotUpException

public ErrNotUpException()

詳細メッセージなしでErrNotUpExceptionのインスタンスを作成します。

クラス ErrProtoException

public class ErrProtoException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

メソッドの発行順序に誤りがあります。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrProtoException

public ErrProtoException()

詳細メッセージなしでErrProtoExceptionのインスタンスを作成します。

クラス ErrReplyTooBigException

public class ErrReplyTooBigException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サーバから返された応答の長さが，CUPで用意した領域（out_data引数の指定値）の長さを超えています。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrReplyTooBigException

public ErrReplyTooBigException()

詳細メッセージなしでErrReplyTooBigExceptionのインスタンスを作成します。

クラス ErrRMException

public class ErrRMException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

リソースマネジャでエラーが発生しました。トランザクションは開始できませんでした。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrRMException

public ErrRMException()

詳細メッセージなしでErrRMExceptionのインスタンスを作成します。

クラス ErrRollbackException

public class ErrRollbackException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

現在のトランザクションは，コミットできないでロールバックしました。

trnChainedCommitメソッドでこの例外が返された場合，このプロセスはトランザクションの範囲内です。trnUnchainedCommitメソッドでこの例外が返された場合，このプロセスはトランザクションの範囲外です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrRollbackException

public ErrRollbackException()

詳細メッセージなしでErrRollbackExceptionのインスタンスを作成します。

クラス ErrRollbackNoBeginException

public class ErrRollbackNoBeginException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

コミットしようとしたトランザクションは，コミットできないでロールバックしました。新しいトランザクションは開始できませんでした。この例外が返されたあと，このプロセスはトランザクション下にありません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrRollbackNoBeginException

public ErrRollbackNoBeginException()

詳細メッセージなしでErrRollbackNoBeginExceptionのインスタンスを作成します。

クラス ErrSecchkException

public class ErrSecchkException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス要求先のSPPは，OpenTP1のセキュリティ機能で保護されています。サービス要求したCUPには，SPPへのアクセス権限がありません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrSecchkException

public ErrSecchkException()

詳細メッセージなしでErrSecchkExceptionのインスタンスを作成します。

クラス ErrSecurityException

public class ErrSecurityException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

セキュリティ例外が発生しました

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrSecurityException

public ErrSecurityException()

詳細メッセージなしでErrSecurityExceptionのインスタンスを作成します。

クラス ErrServerBusyException

public class ErrServerBusyException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス要求先のソケット受信型サーバが，サービス要求を受信できません。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrServerBusyException

public ErrServerBusyException()

詳細メッセージなしでErrServerBusyExceptionのインスタンスを作成します。

クラス ErrServerTimedOutException

public class ErrServerTimedOutException
extends ErrTimedOutException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

TP1/Server側でサービスの実行中にタイムアウトが発生しました。

関連項目

TP1Client，TP1ClientException，ErrTimedOutException

コンストラクタ

●ErrServerTimedOutException

public ErrServerTimedOutException()

詳細メッセージなしでErrServerTimedOutExceptionのインスタンスを作成します。

クラス ErrServiceClosedException

public class ErrServiceClosedException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

指定されたサービスが存在するサービスグループは閉塞されています。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrServiceClosedException

public ErrServiceClosedException()

詳細メッセージなしでErrServiceClosedExceptionのインスタンスを作成します。

クラス ErrServiceNotUpException

public class ErrServiceNotUpException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス要求したSPPは稼働していません。または，サービス要求したSPPが処理を完了する前に異常終了しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrServiceNotUpException

public ErrServiceNotUpException()

詳細メッセージなしでErrServiceNotUpExceptionのインスタンスを作成します。

クラス ErrServiceTerminatedException

public class ErrServiceTerminatedException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

サービス要求をしたSPPが処理を完了する前に異常終了しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrServiceTerminatedException

public ErrServiceTerminatedException()

詳細メッセージなしでErrServiceTerminatedExceptionのインスタンスを作成します。

クラス ErrServiceTerminatingException

public class ErrServiceTerminatingException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

指定されたサービスは終了処理中です。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrServiceTerminatingException

public ErrServiceTerminatingException()

詳細メッセージなしでErrServiceTerminatingExceptionのインスタンスを作成します。

クラス ErrSyserrAtServerException

public class ErrSyserrAtServerException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

指定されたサービスでシステムエラーが発生しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrSyserrAtServerException

public ErrSyserrAtServerException()

詳細メッセージなしでErrSyserrAtServerExceptionのインスタンスを作成します。

クラス ErrSyserrException

直系の既知のサブクラス

ErrNotTrnExtendException
ErrTrnchkExtendException

public class ErrSyserrException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

システムエラーが発生しました。詳細については，エラートレースまたはメモリトレースを参照してください。

エラートレースおよびメモリトレースの内容については，「2.11.4　エラートレース，メモリトレース」を参照してください。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrSyserrException

public ErrSyserrException()

詳細メッセージなしでErrSyserrExceptionのインスタンスを作成します。

クラス ErrTestmodeException

public class ErrTestmodeException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

テストモードのSPPに対してサービス要求を行いました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrTestmodeException

public ErrTestmodeException()

詳細メッセージなしでErrTestmodeExceptionのインスタンスを作成します。

クラス ErrTimedOutException

直系の既知のサブクラス

ErrClientTimedOutException
ErrServerTimedOutException

public class ErrTimedOutException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

openConnectionメソッドがこの例外を返した場合

TP1/Webの擬似セション開始中またはrapリスナーとのコネクションの確立中に，タイムアウトが発生しました。

closeConnectionメソッドがこの例外を返した場合

TP1/Webとの擬似セション切断中またはrapリスナー，rapサーバとのコネクション切断中に，タイムアウトが発生しました。

rpcCallメソッドがこの例外を返した場合

タイムアウトが発生しました。または，サービス要求先SPPが処理を終了する前に異常終了しました。

cltAssemSendメソッドがこの例外を返した場合

応答メッセージの受信時に，タイムアウトが発生しました。

cltAssemReceiveメソッドがこの例外を返した場合

メッセージの受信時に，タイムアウトが発生しました。

trnChainedCommitメソッド，trnChainedRollbackメソッド，trnUnchainedCommitメソッド，trnUnchainedRollbackメソッド，またはcltReceiveメソッドがこの例外を返した場合

タイムアウトが発生しました。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrTimedOutException

public ErrTimedOutException()

詳細メッセージなしでErrTimedOutExceptionのインスタンスを作成します。

クラス ErrTMException

public class ErrTMException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

トランザクションサービスでエラーが発生したため，トランザクションを開始できませんでした。この例外が返されたあと，適当な時間を置いてから再度実行すると，トランザクションを開始できることがあります。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrTMException

public ErrTMException()

詳細メッセージなしでErrTMExceptionのインスタンスを作成します。

クラス ErrTrnchkException

public class ErrTrnchkException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

ノード間負荷バランス機能を使用している環境で，複数のSPPのトランザクション属性が一致していません。または，負荷を分散する先のノードのTP1/Serverのバージョンが，TP1/Client/Jのバージョンよりも古いため，ノード間負荷バランス機能を実行できません。

この例外は，ノード間負荷バランス機能を使っているSPPにサービスを要求した場合にだけ返されます。

関連項目

TP1Client，TP1ClientException

コンストラクタ

●ErrTrnchkException

public ErrTrnchkException()

詳細メッセージなしでErrTrnchkExceptionのインスタンスを作成します。

クラス ErrTrnchkExtendException

public class ErrTrnchkExtendException
extends ErrSyserrException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

次のどれかの要因が考えられます。

同時に起動できるトランザクションブランチの数を超えたため，トランザクションブランチを開始できない

一つのトランザクションブランチから開始できる子トランザクションブランチの最大数を超えたため，トランザクションブランチを開始できない

トランザクション内でドメイン修飾をしたサービス要求で，flags引数にDCRPC_TPNOTRANを設定していない

関連項目

TP1Client，TP1ClientException，ErrSyserrException

コンストラクタ

●ErrTrnchkExtendException

public ErrTrnchkExtendException()

詳細メッセージなしでErrTrnchkExtendExceptionのインスタンスを作成します。

クラス ErrVersionException

public class ErrVersionException
extends TP1ClientException

TP1/Client/Jが返す例外のクラスです。次の事象を表します。

通知元サーバのバージョンが不正です。

コンストラクタ

●ErrVersionException

public ErrVersionException()

詳細メッセージなしでErrVersionExceptionクラスのインスタンスを作成します。

クラス TP1ClientException

直系の既知のサブクラス

ErrBufferOverflowException
ErrCollisionMessageException
ErrConnfreeException
ErrFatalException
ErrHazardException
ErrHazardNoBeginException
ErrHeuristicException
ErrHeuristicNoBeginException
ErrHostUndefException
ErrInitializingException
ErrInvalidArgsException
ErrInvalidMessageException
ErrInvalidPortException
ErrInvalidReplyException
ErrIOErrException
ErrMessageTooBigException
ErrNetDownException
ErrNoBeginException
ErrNoBufsAtServerException
ErrNoBufsException
ErrNoSuchServiceException
ErrNoSuchServiceGroupException
ErrNotUpException
ErrProtoException
ErrReplyTooBigException
ErrRMException
ErrRollbackException
ErrRollbackNoBeginException
ErrSecchkException
ErrSecurityException
ErrServerBusyException
ErrServiceClosedException
ErrServiceNotUpException
ErrServiceTerminatedException
ErrServiceTerminatingException
ErrSyserrAtServerException
ErrSyserrException
ErrTestmodeException
ErrTimedOutException
ErrTMException
ErrTrnchkException

public class TP1ClientException
extends java.lang.Exception

TP1ClientExceptionクラスはTP1/Client/Jが返すすべての例外のスーパークラスです。

関連項目

TP1Client

コンストラクタ

●TP1ClientException

public TP1ClientException()

詳細メッセージなしでTP1ClientExceptionのインスタンスを作成します。

●TP1ClientException

public TP1ClientException(String msg)

詳細メッセージ付きでTP1ClientExceptionのインスタンスを作成します。

詳細メッセージはgetMessageメソッドで取り出せます。

5.　定義

TP1/Client/J環境定義について説明します。

＜この章の構成＞

5.1　定義の概要

5.2　TP1/Client/J環境定義の詳細

5.1　定義の概要

この節では，TP1/Client/J環境定義の一覧，定義の規則，およびパス名の形式について説明します。

＜この節の構成＞

5.1.1　TP1/Client/J環境定義の一覧

5.1.2　定義の規則

5.1.3　パス名の記述形式

5.1.1　TP1/Client/J環境定義の一覧

TP1/Client/J環境定義の一覧を，次の表に示します。

表5-1　TP1/Client/J環境定義の一覧

項番 | オペランド | 定義内容 | 指定値
1 | dcnamuse | ネームサービスを使用したRPCを使用するかどうかを指定 | Y｜《N》
2 | dcnamport | ネームサービスのポート番号 | 〈符号なし整数〉((5001～65535))《10000》
3 | dchost | 窓口となるTP1/Server | 〈文字列〉
4 | dcwatchtim | 最大応答待ち時間 | 〈符号なし整数〉((0～65535))《180》（単位：秒）
5 | dccltinquiretime | 常設コネクション問い合わせ間隔最大時間 | 〈符号なし整数〉((0～1048575))（単位：秒）
6 | dcwatchtiminherit | リモートAPI機能を使用したRPCを行う場合に，CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定 | Y｜《N》
7 | dcwatchtimrpcinherit | CUPの最大応答待ち時間をTP1/Server側に引き継ぐかどうかを指定 | Y｜《N》
8 | dccltdelay | 最大通信遅延時間 | 〈符号なし整数〉((0～65535))《0》（単位：秒）
9 | dcselint | 応答電文監視時間間隔 | 〈符号なし整数〉((1～65535))《100》（単位：ミリ秒）
10 | dccltextend | TP1/Client/Jの機能拡張レベルの設定を指定 | 00000000｜00000001
11 | dccache | ネームキャッシュの最大エントリ数 | 〈符号なし整数〉((2～256))《8》
12 | dchostselect | 窓口となるTP1/Serverをランダムに選択するかどうかを指定 | Y｜《N》
13 | dcscddirect | TP1/Serverのネームサービスにサービス情報を問い合わせないで，スケジューラダイレクト機能を使用したRPCを使用するかどうかを指定 | Y｜《N》
14 | dcscdport | スケジュールサービスのポート番号 | 〈符号なし整数〉((5001～65535))
15 | dcscdloadpriority | サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうかを指定 | Y｜《N》
16 | dcrapdirect | TP1/Serverのネームサービスにサービス情報を問い合わせないで，直接rapリスナーに問い合わせる機能，すなわちリモートAPI機能を使用するかどうかを指定 | 《Y》｜N
17 | dcrapport | rapリスナーのポート番号 | 〈符号なし整数〉((5001～65535))
18 | dcrapautoconnect | CUPとrapサーバとの間の常設コネクションを自動的に確立させるかどうかを指定 | Y｜《N》
19 | dcerrtrace | CUPでエラートレースを取得するかどうかを指定 | Y｜《N》
20 | dcerrtracepath | エラートレースファイル作成ディレクトリ | 〈文字列〉
21 | dcerrtracesize | エラートレースファイルサイズ | 〈符号なし整数〉((4096～1048576))《4096》（単位：バイト）
22 | dcmethodtrace | CUPでメソッドトレースを取得するかどうかを指定 | Y｜《N》
23 | dcmethodtracepath | メソッドトレースファイル作成ディレクトリ | 〈文字列〉
24 | dcmethodtracesize | メソッドトレースファイルサイズ | 〈符号なし整数〉((4096～1048576))《4096》（単位：バイト）
25 | dcuaptrace | CUPでUAPトレースを取得するかどうかを指定 | Y｜《N》
26 | dcuaptracepath | UAPトレースファイル作成ディレクトリ | 〈文字列〉
27 | dcuaptracesize | UAPトレースファイルサイズ | 〈符号なし整数〉((4096～1048576))《4096》（単位：バイト）
28 | dcdatatrace | CUPでデータトレースを取得するかどうかを指定 | Y｜《N》
29 | dcdatatracepath | データトレースファイル作成ディレクトリ | 〈文字列〉
30 | dcdatatracesize | データトレースファイルサイズ | 〈符号なし整数〉((4096～1048576))《4096》（単位：バイト）
31 | dcdatatracemaxsize | データトレースの最大データ長 | 〈符号なし整数〉((16～1048576))《128》（単位：バイト）
32 | dcclttrstatisitem | トランザクションブランチの統計情報を取得する項目を指定 | 統計情報項目〔,統計情報項目〕…
33 | dcclttroptiitem | 複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を指定 | トランザクション最適化項目〔,トランザクション最適化項目〕…
34 | dcclttrwatchtime | トランザクション同期点処理時の最大通信待ち時間 | 〈符号なし整数〉((1～65535))（単位：秒）
35 | dcclttrrbinfo | トランザクションブランチがロールバックした場合に，ロールバック要因に関する情報をログに取得するかどうかを指定 | no｜self｜remote｜all
36 | dcclttrlimittime | トランザクションブランチ最大実行可能時間 | 〈符号なし整数〉((0～65535))（単位：秒）
37 | dcclttrrbrcv | RPC先トランザクションブランチにロールバック指示を送信したあと，ロールバック完了通知を受信するかどうかを指定 | Y｜N
38 | dcclttrrecoverytype | UAP障害時のトランザクション同期点処理方式を指定 | type1｜type2｜type3
39 | dcclttrexptm | トランザクションブランチ限界経過時間 | 〈符号なし整数〉((0～65535))（単位：秒）
40 | dcclttrcputm | トランザクションブランチCPU監視時間 | 〈符号なし整数〉((0～65535))（単位：秒）
41 | dcclttrexpsp | トランザクションブランチの処理を監視するとき，次の処理時間も監視時間に含むかどうかを指定 | Y｜N｜F
42 | dcsndrcvtype | TCP/IP通信機能の使用時に，初期化する環境を指定 | DCCLT_ONEWAY_SND｜DCCLT_ONEWAY_RCV｜DCCLT_SNDRCV
43 | dcrcvport | 受信用のCUPのポート番号 | 〈符号なし整数〉((1～65535))《11000》
44 | dcsndhost | 接続するMHPが存在するノードのホスト名 | 〈文字列〉
45 | dcsndport | 接続するMHPのポート番号 | 〈符号なし整数〉((1～65535))《12000》
46 | dcsockopenatrcv | TCP/IP通信機能の使用時に，1コネクションで送受信する場合の，受信用ソケットを開設する契機（送信相手からの接続を待ち受け始める契機）を指定 | Y｜《N》
47 | dcweburl | サービス要求先のTP1/WebのURL | 〈パス名〉
48 | dccltdbgtrcfilecount | デバッグトレースファイルの最大ファイル数 | 〈符号なし整数〉((0～256))《0》
49 | dccltrpcmaxmsgsize | RPC送受信電文の最大長 | 〈符号なし整数〉((1～8))《1》（単位：メガバイト）
50 | dcscdhostchange | TP1/Client/J環境定義のdchostオペランドに指定したサービス要求先スケジューラをRPCごとに分散させるかどうかを指定 | Y｜《N》
51 | dccltloadbalance | ネームサーバから得た複数のサービス要求先スケジューラの情報から，負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納するかどうかを指定 | Y｜《N》
52 | dccltcachetim | キャッシュの有効期限 | 〈符号なし整数〉((0～65535))《30》（単位：秒）
53 | dccltconnecttimeout | コネクション確立最大監視時間 | 〈符号なし整数〉((0～65535))《0》（単位：秒）
54 | dccltprftrace | TP1/Client/JをCosminexus Application Server上で動作させた場合に，Cosminexus Application Serverの性能解析トレースを取得するかどうかを指定 | 《Y》｜N
55 | dccltprfinfosend | TP1/Serverに対して，ネームサービスを使用したRPC，およびスケジューラダイレクト機能を使用したRPCを行う場合に，OpenTP1の性能検証用トレースに出力する情報としてTP1/Client/J内部で識別情報を付加するかどうかを指定 | 《Y》｜N
56 | dccltnammlthost | マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うかどうかを指定 | Y｜《N》
57 | dccltdatacomp | データ圧縮機能を使用するかどうかを指定 | Y｜《N》
58 | dccltconnectinf | 端末識別情報として，DCCM3論理端末の論理端末名称をEBCDIKコードで指定 | 端末識別情報
59 | dcscdmulti | マルチスケジューラ機能を使用するかどうかを指定 | Y｜《N》
60 | dcscdmulticount | マルチスケジューラデーモンのプロセス数 | 〈符号なし整数〉((1～4096))《1》
61 | dccltcupsndhost | CUPの送信元ホスト | 〈文字列〉
62 | dccltcuprcvport | サーバからのメッセージを受信するCUPのポート番号 | 〈符号なし整数〉((5001～65535))
63 | dcclttrcmplmttm | トランザクション完了限界時間 | 〈符号なし整数〉((0～65535))（単位：秒）

5.1.2　定義の規則

定義の説明に使用する各種の記号を説明します。

ここで述べる文法記述記号，属性表示記号，および構文要素記号は実際の定義には記述しません。

＜この項の構成＞

(1)　文法記述記号

(2)　属性記述記号

(3)　構文要素記号

(1)　文法記述記号

文法の記述について説明する記号です。

文法記述記号
意味

〔　　　〕
この記号で囲まれている項目は省略できることを示します。

（例）ホスト名〔:ポ－ト番号〕

これは，「ホスト名」と指定するか，または「ホスト名:ポ－ト番号」と指定することを示します。

｜
この記号で仕切られた項目は選択できることを示します。

（例）dcnamuse=Y｜N

これは，dcnamuse=Yと指定するか，またはdcnamuse=Nと指定することを示します。

…
記述が省略されていることを示します。この記号の直前に示された項目を繰り返し複数個指定できます。

（例）ホスト名〔:ポ－ト番号〕〔,ホスト名〔:ポ－ト番号〕,…〕

ホスト名〔:ポ－ト番号〕を続けて指定できることを示します。

(2)　属性記述記号

ユーザ指定値の範囲などを説明する記号です。

属性表示記号 | 意味
～ | この記号のあとにユーザ指定値の属性を示します。
《 》 | ユーザ指定値の省略値を示します。
〈 〉 | ユーザ指定値の構文要素記号を示します。
(( )) | ユーザ指定値の指定範囲を示します。

(3)　構文要素記号

ユーザ指定値の内容を説明する記号です。

構文要素記号
意味

〈英字〉
アルファベット（A～Z，a～z），および_（アンダースコア）

〈英数字〉
英字と数字（0～9）

〈英字記号〉
アルファベット（A～Z，a～z），#，@，および¥

〈符号なし整数〉
数字（0～9）

〈符号なし16進整数〉
数字（0～9），A～F，a～f

〈記号名称〉
英字記号と数字の並び（先頭は英字記号）

〈文字列〉
任意の文字の配列

〈パス名〉
記号名称，/，および .（ピリオド）
（ただし，パス名は使用するOSに依存）

5.1.3　パス名の記述形式

次の四つのオペランドにパス名を指定する場合，ファイル区切り文字に"¥"を使用するときは，"¥"を"¥¥"と記述してください。

dcerrtracepath

dcmethodtracepath

dcuaptracepath

dcdatatracepath

例　"C:¥Clt4J¥trace"にエラートレースを取得する場合

dcerrtracepath = C:¥¥Clt4J¥¥trace

または，

dcerrtracepath = C:/Clt4J/trace

5.2　TP1/Client/J環境定義の詳細

Javaアプリケーション，またはJavaサーブレットでは，TP1/Client/J環境定義を任意のファイルに格納してrpcOpenメソッドの引数でこのファイル名を指定します。また，rpcOpenメソッドを引数無しで呼び出した場合は，システムプロパティとして定義することもできます。

Javaアプレットでは，paramタグでTP1/Client/J環境定義を定義します。

TP1/Client/J環境定義を次に示します。

＜この節の構成＞

5.2.1　形式

5.2.2　オペランド

5.2.3　TP1/Client/J環境定義を指定するときの注意事項

5.2.1　形式

〔dcnamuse=Y|N〕
〔dcnamport=ネームサービスのポート番号〕
〔dchost=窓口となるTP1/Serverのホスト名〕
〔dcwatchtim=最大応答待ち時間〕
〔dccltinquiretime=常設コネクション問い合わせ間隔最大時間〕
〔dcwatchtiminherit=Y|N〕
〔dcwatchtimrpcinherit=Y|N〕
〔dccltdelay=最大通信遅延時間〕
〔dcselint=応答電文監視時間間隔〕
〔dccltextend=機能拡張レベル〕
〔dccache=ネームキャッシュの最大エントリ数〕
〔dchostselect=Y|N〕
〔dcscddirect=Y|N〕
〔dcscdport=スケジュールサービスのポート番号〕
〔dcscdloadpriority=Y|N〕
〔dcrapdirect=Y|N〕
〔dcrapport=rapリスナーのポート番号〕
〔dcrapautoconnect=Y|N〕
〔dcerrtrace=Y|N〕
〔dcerrtracepath=エラートレースファイル作成ディレクトリ〕
〔dcerrtracesize=エラートレースファイルサイズ〕
〔dcmethodtrace=Y|N〕
〔dcmethodtracepath=メソッドトレースファイル作成ディレクトリ〕
〔dcmethodtracesize=メソッドトレースファイルサイズ〕
〔dcuaptrace=Y|N〕
〔dcuaptracepath=UAPトレースファイル作成ディレクトリ〕
〔dcuaptracesize=UAPトレースファイルサイズ〕
〔dcdatatrace=Y|N〕
〔dcdatatracepath=データトレースファイル作成ディレクトリ〕
〔dcdatatracesize=データトレースファイルサイズ〕
〔dcdatatracemaxsize=データトレースの最大データ長〕
〔dcclttrstatisitem=統計情報項目〕
〔dcclttroptiitem=トランザクション最適化項目〕
〔dcclttrwatchtime=トランザクション同期点処理時の最大通信待ち時間〕
〔dcclttrrbinfo=no|self|remote|all〕
〔dcclttrlimittime=トランザクションブランチ最大実行可能時間〕
〔dcclttrrbrcv=Y|N〕
〔dcclttrrecoverytype=type1|type2|type3〕
〔dcclttrexptm=トランザクションブランチ限界経過時間〕
〔dcclttrcputm=トランザクションブランチCPU監視時間〕
〔dcclttrexpsp=Y|N|F〕
〔dcsndrcvtype=DCCLT_ONEWAY_SND｜DCCLT_ONEWAY_RCV｜DCCLT_SNDRCV〕
〔dcrcvport=受信用のCUPのポート番号〕
〔dcsndhost=接続するMHPが存在するノードのホスト名〕
〔dcsndport=接続するMHPのポート番号〕
〔dcsockopenatrcv=Y|N〕
〔dcweburl=サービス要求先のTP1/WebのURL〕
〔dccltdbgtrcfilecount=デバッグトレースファイルの最大ファイル数〕
〔dccltrpcmaxmsgsize=RPC送受信電文の最大長〕
〔dcscdhostchange=Y|N〕
〔dccltloadbalance=Y|N〕
〔dccltcachetim=キャッシュの有効期限〕
〔dccltconnecttimeout=コネクション確立最大監視時間〕
〔dccltprftrace=Y|N〕
〔dccltprfinfosend=Y|N〕
〔dccltnammlthost=Y|N〕
〔dccltdatacomp=Y|N〕
〔dccltconnectinf=端末識別情報〕
〔dcscdmulti=Y|N〕
〔dcscdmulticount=マルチスケジューラデーモンのプロセス数〕
〔dccltcupsndhost=送信元ホスト〕
〔dccltcuprcvport=CUPの受信で使用するポート番号〕
〔dcclttrcmplmttm=トランザクション完了限界時間〕

5.2.2　オペランド

dcnamuse=Y｜N　～《N》
ネームサービスを使用したRPCを使用するかどうかを指定します。

Y：ネームサービスを使用したRPCを使用します。

N：ネームサービスを使用したRPCを使用しません。

dcnamuse，dcrapdirect，およびdcscddirectオペランドは排他関係にあるため，同時にYを指定できません。これらのオペランドの二つ以上にYを指定した場合，定義エラーとなります。
TP1/Web接続機能は，dcrapdirectオペランドにYを指定した場合にだけ使用できます。dcweburlオペランドを定義して，かつdcscddirect=Yおよびdcrapdirect=Yの場合は，定義エラーとなります。

dcnamport=ネームサービスのポート番号
～〈符号なし整数〉((5001～65535))《10000》
クライアントが属しているOpenTP1のシステム共通定義のname_portオペランドで指定したネームサービスのポート番号を指定します。dchostオペランドでポート番号を指定していないホストに対して，この定義の値が有効になります。

dchost=窓口となるTP1/Server　～〈文字列〉
窓口となるTP1/Serverのホスト名と，rapリスナーのポート番号，スケジュールサービスのポート番号，またはネームサービスのポート番号を指定します。区切り文字','を使用して，複数のTP1/Serverを指定できます。RPCをrapリスナー経由で行う場合は，rapリスナーのホスト名，またはファイアウォールのホスト名を指定します。
dchostオペランドとdcweburlオペランドの両方を指定した場合は，dcweburlオペランドの指定が有効になります。

形式

dcrapdirect=Yの場合

ホスト名〔:rapリスナーのポート番号〕〔,ホスト名〔:rapリスナーのポート番号〕,…〕

dcscddirect=Yの場合

ホスト名〔:スケジュールサービスのポート番号〕〔,ホスト名〔:スケジュールサービスのポート番号〕,…〕

dcnamuse=Yの場合

ホスト名〔:ネームサービスのポート番号〕〔,ホスト名〔:ネームサービスのポート番号〕,…〕

・ホスト名　～〈文字列〉

・ポート番号　～〈符号なし整数〉((5001～65535))

指定できる最大文字数は256です。区切り文字','の後ろ以外は空白文字（スペースまたはタブ）を入れないでください。ホスト名には，10進ドット記法のIPアドレスを指定することもできます。

TP1/Serverのホスト名を二つ以上指定した場合，窓口となるTP1/Serverの障害を検出したとき，dchostオペランドに指定されている次のTP1/Serverを参照して切り替えを試みます。ただし，RPCをrapリスナー経由で行う場合は，TP1/Client/J環境定義でdcrapautoconnect=Y，またはsetDccltextendメソッドでDCRPC_RAP_AUTOCONNECTを指定した場合だけ，dchostオペランドの次のTP1/Serverを参照して切り替えを試みます。

ポート番号は，dcrapdirect=Yの場合，rapリスナーのポート番号を指定します。dcscddirect=Yの場合，スケジュールサービスのポート番号を指定します。dcnamuse=Yの場合，ネームサービスのポート番号を指定します。

ポート番号を省略すると，dcrapdirect=Yの場合，dcrapportオペランドの値を仮定します。dcscddirect=Yの場合，dcscdportオペランドの値を仮定します。dcnamuse=Yの場合，dcnamportオペランドの値を仮定します。

dcwatchtim=最大応答待ち時間
～〈符号なし整数〉((0～65535))《180》（単位：秒）
CUPからTP1/Serverに対しての要求を開始してから応答が返るまでの待ち時間の最大値を指定します。
指定時間を過ぎても応答が返らない場合は，CUPへエラーリターンします。0を指定した場合は，応答を受信するまで無限に待ち続けます。
dcwatchtimオペランドの指定が適用されるAPI（メソッド）を次に示します。

closeConnectionメソッド

openConnectionメソッド

rpcCallメソッド（スケジューラダイレクト機能を使用した非応答型RPCの場合を除く）

rpcCallToメソッド（同期応答型RPCの場合）

trnBeginメソッド

trnChainedCommitメソッド

trnChainedRollbackメソッド

trnUnchainedCommitメソッド

trnUnchainedRollbackメソッド

dccltinquiretime=常設コネクション問い合わせ間隔最大時間
～〈符号なし整数〉((0～1048575))（単位：秒）
CUPがサーバに対して問い合わせを行ってから，次の問い合わせをするまでの間隔の最大時間を指定します。常設コネクション問い合わせ間隔最大時間はrapサーバで監視するタイマです。指定時間を超えても問い合わせがない場合，rapサーバ側で強制的に常設コネクションを解放します。また，トランザクション内で常設コネクション問い合わせ間隔最大時間に達したことを検知した場合は，該当するトランザクションを強制的にロールバックします。
この定義に0を指定した場合は，CUPからの問い合わせを無限に待ちます。この指定を省略した場合は，rapリスナーサービス定義のrap_inquire_timeオペランドの指定に従います。

dcwatchtiminherit=Y｜N　～《N》
リモートAPI機能を使用したRPCを行う場合に，CUPの最大応答待ち時間をrapサーバ側に引き継ぐかどうかを指定します。

Y：rapサーバ側にCUPの最大応答待ち時間を引き継ぎます。

N：rapサーバ側にCUPの最大応答待ち時間を引き継ぎません。

dcwatchtimrpcinherit=Y｜N　～《N》
CUPの最大応答待ち時間をTP1/Server側に引き継ぐかどうかを指定します。CUPの最大応答待ち時間を引き継ぐと，CUPがタイムアウトしているのにTP1/Server側でサービスを実行することを防止できます。

Y：TP1/Server側にCUPの最大応答待ち時間を引き継ぎます。

N：TP1/Server側にCUPの最大応答待ち時間を引き継ぎません。

dccltdelay=最大通信遅延時間
～〈符号なし整数〉((0～65535))《0》（単位：秒）
CUPとrapサーバとの間の通信オーバヘッドを考慮し，rapサーバ側の応答監視をTP1/Client/J側よりも早く終わらせる場合に指定します。この定義を指定すると，rapサーバ側の監視を指定した時間分だけ早く終了させ，TP1/Client/J側の監視時間のタイムアウトによるメッセージのすれ違いを防ぎます。
この定義は，TP1/Client/J環境定義にdcrapdirect=Yおよびdcwatchtiminherit=Yを指定した場合にだけ有効です。
TP1/Client/J環境定義にdcwatchtim=0を指定した場合またはsetDcwatchtimメソッドで0を指定した場合，およびTP1/Client/J環境定義にdcwatchtiminherit=Nを指定した場合は，dccltdelayオペランドの指定は無視されます。dcwatchtimオペランドに指定した値からdccltdelayオペランドに指定した値を引いたときに，0または負の値になった場合も，dccltdelayオペランドの指定は無視され，1が仮定されます。

dcselint=応答電文監視時間間隔　～〈符号なし整数〉((1～65535))《100》（単位：ミリ秒）
このオペランドは，旧バージョンとの互換性のためだけに存在します。現在はこのオペランドを指定しても無視されます。

dccltextend=00000000｜00000001
TP1/Client/Jの機能拡張レベルの設定を指定します。

00000000：TP1/Client/Jの機能を拡張しません。

00000001：rpcCallメソッド呼び出し時，自CUPのIPアドレスをサービスに連絡します。呼び出したサービスでdc_rpc_get_callers_address()関数を実行し，CUPのアドレスを求める必要がある場合に指定します。

dccache=ネームキャッシュの最大エントリ数　～〈符号なし整数〉((2～256))《8》
TP1/Client/Jで使用するサービス情報をキャッシュするためのキャッシュの最大エントリ数を指定します。LRU方式で管理します。キャッシュのエントリ数が指定値を超える場合は，最も過去に呼び出されたサービス情報を削除します。

dchostselect=Y｜N　～《N》
窓口となるTP1/Serverをランダムに選択するかどうかを指定します。この定義は，dchostオペランドに窓口となるTP1/Serverを複数指定した場合にだけ有効です。

Y：窓口となるTP1/Serverをランダムに選択します。

N：窓口となるTP1/Serverをランダムに選択しません。

Yを指定した場合

窓口となるTP1/Serverのネームサービスへ問い合わせ中に障害を検出した場合，障害を検出したTP1/Serverを除いて，再び窓口となるTP1/Serverをランダムに選択し，切り替えを試みます。

Nを指定した場合

窓口となるTP1/Serverのネームサービスへ問い合わせ中に障害を検出した場合，dchostオペランドに指定された次のTP1/Serverに切り替えを試みます。

障害が発生したTP1/Serverは，次回のRPCではリトライ先ホストの候補になります。
TP1/Client/J環境定義にdcscddirect=Yを指定している場合，該当するポート番号への送信が失敗した時点で，窓口となるTP1/Serverの切り替えが発生します。

dcscddirect=Y｜N　～《N》
TP1/Serverのネームサービスにサービス情報を問い合わせないで，スケジューラダイレクト機能を使用したRPCを使用するかどうかを指定します。

Y：スケジューラダイレクト機能を使用したRPCを使用します。

N：スケジューラダイレクト機能を使用したRPCを使用しません。

TP1/Client/J環境定義のdcscdportオペランドにスケジュールサービスのポート番号を指定したときは，そのポート番号を使用して問い合わせを行います。dcrapdirect，dcscddirect，およびdcnamuseオペランドは排他関係にあるため，同時にYを指定できません。これらのオペランドの二つ以上にYを指定した場合，定義エラーとなります。
TP1/Web接続機能は，dcrapdirectオペランドにYを指定した場合にだけ使用できます。dcweburlオペランドを定義して，かつdcscddirect=Yおよびdcrapdirect=Yの場合は，定義エラーとなります。

dcscdport=スケジュールサービスのポート番号
～〈符号なし整数〉((5001～65535))
クライアントが属しているOpenTP1のスケジュールサービス定義のscd_portオペランドで指定したスケジュールサービスのポート番号を指定します。dchostオペランドでポート番号を指定していないホストに対して，この定義の値が有効になります。このオペランドはTP1/Client/J環境定義にdcscddirect=Yを指定したときだけ有効です。詳しくは，TP1/Client/J環境定義のdcscddirectオペランドを参照してください。

dcscdloadpriority=Y｜N　～《N》
サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散するかどうか指定します。

Y：サービス要求を受け付けた窓口となるTP1/Serverを優先して負荷分散します。

N：サービス要求を受け付けた窓口となるTP1/Serverを優先しません。TP1/Serverは，ノード間の負荷を分散します。

この定義は，スケジューラダイレクト機能を使用したRPCを行う場合（TP1/Client/J環境定義にdcscddirect=Yを指定）にだけ，有効です。

dcrapdirect=Y｜N　～《Y》
TP1/Serverのネームサービスにサービス情報を問い合わせないで，直接rapリスナーに問い合わせる機能，すなわちリモートAPI機能を使用するかどうかを指定します。このオペランドの指定を有効にするには，TP1/Client/J環境定義のdcrapportオペランドにrapリスナーのポート番号を指定します。
dcrapdirect，dcscddirect，およびdcnamuseオペランドは排他関係にあるため，同時にYを指定することはできません。これらのオペランドの二つ以上にYを指定した場合，定義エラーとなります。

dcrapport=rapリスナーのポート番号　～〈符号なし整数〉((5001～65535))
クライアントが属しているTP1/Serverのrapリスナーのポート番号，またはファイアウォールのポート番号を指定します。dchostオペランドでポート番号を指定していないホストに対して，このオペランドの値が有効になります。
このオペランドは，TP1/Client/J環境定義にdcrapdirect=Yを指定したときだけ有効です。詳しくは，TP1/Client/J環境定義のdcrapdirectオペランドを参照してください。

dcrapautoconnect=Y｜N　～《N》
CUPとrapサーバとの間の常設コネクションを自動的に確立させるかどうかを指定します。

Y：次回メソッド実行時に自動的に常設コネクションを確立します。常設コネクション確立要求先は，TP1/Client/J環境定義のdchostオペランドに指定したrapリスナーです。

N：常設コネクションを自動的に確立させません。

コネクション確立モードの違いによる各メソッドの動作

非オートコネクトモードの場合およびオートコネクトモードの場合のコネクション確立処理は，次の表のようになります。

表5-2　コネクション確立モードの違いによる各メソッドの動作

dcrapautoconnectオペランドの指定値
openConnection()メソッドを発行
openConnection(host, port)メソッドを発行
openConnection(url, flags)メソッドを発行
rpcCall()メソッドを発行

N

dchostオペランドが指定されている場合，dchostオペランドに指定されたrapサーバにコネクションを確立する。

dcweburlオペランドが指定されている場合，dcweburlオペランドに指定されたURLにコネクションを確立する。

dchostオペランドおよびdcweburlオペランドが指定されていない場合，ErrHostUndefExceptionが返される。

host引数およびport引数に指定されたrapサーバにコネクションを確立する。
url引数に指定されたURLにコネクションを確立する。
ErrProtoExceptionが返される。

Y
ErrProtoExceptionが返される。
ErrProtoExceptionが返される。
ErrProtoExceptionが返される。

dchostオペランドが指定されている場合，dchostオペランドに指定されたrapサーバにコネクションを確立する。

dcweburlオペランドが指定されている場合，dcweburlオペランドに指定されたURLにコネクションを確立する。

dchostオペランドおよびdcweburlオペランドが指定されていない場合，ErrHostUndefExceptionが返される。

注

setRpcextendメソッドによってdcrapautoconnectオペランドの値を動的に変更できます。

rpcOpenメソッドで定義を読み込みます。

rpcCloseメソッドで読み込んだ定義情報を破棄します。

引数にURLを指定したopenConnectionメソッドを実行した場合，指定されたURLは，そのURLを指定したopenConnectionメソッドだけで採用します。このメソッドの実行後，closeConnectionメソッドでコネクションを切断し，次に引数指定無しのopenConnectionメソッドを実行しても，前回の引数に指定したURLは採用されません。

dcerrtrace=Y｜N　～《N》
CUPでエラートレースを取得するかどうかを指定します。

Y：エラートレースを取得します。

N：エラートレースを取得しません。

CUPをJavaアプレットとして動作させる場合，Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcerrtracepath=エラートレースファイル作成ディレクトリ　～〈文字列〉
エラートレースファイルを作成するディレクトリのパス名を指定します。
このオペランドは，TP1/Client/J環境定義にdcerrtrace=Yを指定した場合にだけ有効です。

dcerrtracesize=エラートレースファイルサイズ　～〈符号なし整数〉((4096～1048576)) 《4096》（単位：バイト）
エラートレースファイルのサイズを指定します。

dcmethodtrace=Y｜N　～《N》
CUPでメソッドトレースを取得するかどうかを指定します。

Y：メソッドトレースを取得します。

N：メソッドトレースを取得しません。

CUPをJavaアプレットとして動作させる場合，Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcmethodtracepath=メソッドトレースファイル作成ディレクトリ　～〈文字列〉
メソッドトレースファイルを作成するディレクトリのパス名を指定します。
このオペランドは，TP1/Client/J環境定義にdcmethodtrace=Yを指定した場合にだけ有効です。

dcmethodtracesize=メソッドトレースファイルサイズ　～〈符号なし整数〉((4096～1048576)) 《4096》（単位：バイト）
メソッドトレースファイルのサイズを指定します。

dcuaptrace=Y｜N　～《N》
CUPでUAPトレースを取得するかどうかを指定します。

Y：UAPトレースを取得します。

N：UAPトレースを取得しません。

CUPをJavaアプレットとして動作させる場合，Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcuaptracepath=UAPトレースファイル作成ディレクトリ　～〈文字列〉
UAPトレースファイルを作成するディレクトリのパス名を指定します。
このオペランドは，TP1/Client/J環境定義にdcuaptrace=Yを指定した場合にだけ有効です。

dcuaptracesize=UAPトレースファイルサイズ　～〈符号なし整数〉((4096～1048576))《4096》（単位：バイト）
UAPトレースファイルのサイズを指定します。

dcdatatrace=Y｜N　～《N》
CUPでデータトレースを取得するかどうかを指定します。

Y：データトレースを取得します。

N：データトレースを取得しません。

CUPをJavaアプレットとして動作させる場合，Yを指定しないでください。Yを指定した場合の動作は保証されません。

dcdatatracepath=データトレースファイル作成ディレクトリ　～〈文字列〉
データトレースファイルを作成するディレクトリのパス名を指定します。
このオペランドは，TP1/Client/J環境定義にdcdatatrace=Yを指定した場合にだけ有効です。

dcdatatracesize=データトレースファイルサイズ　～〈符号なし整数〉((4096～1048576)) 《4096》（単位：バイト）
データトレースファイルのサイズを指定します。

dcdatatracemaxsize=データトレースの最大データ長　～〈符号なし整数〉((16～1048576)) 《128》（単位：バイト）
1件のデータトレースのデータ長の最大値を指定します。

dcclttrstatisitem=統計情報項目〔,統計情報項目〕…
トランザクションブランチの統計情報を取得する項目を，次の文字列で指定します。CUPからトランザクションを開始する場合にだけ有効です。

nothing

統計情報を取得しません。

base

基本情報として，次の情報を取得します。

・トランザクションブランチの識別子

・トランザクションブランチの決着結果

・トランザクションブランチの実行プロセス種別

・トランザクションブランチの実行サーバ名

・トランザクションブランチの実行サービス名

executiontime

基本情報とトランザクションブランチの実行時間情報を取得します。

cputime

基本情報とトランザクションブランチのCPU時間情報を取得します。

nothingの指定は，一つしかできません。また，nothingとほかの統計情報項目を同時に指定した場合，nothingの指定は無効になります。
トランザクションに関する統計情報を取得する場合は，次のどちらかを指定してください。

トランザクションサービス定義にtrn_tran_statistics=Yを指定

trnsticsコマンドで-sオプションを指定

この定義を省略した場合は，rapリスナーサービス定義のtrn_statistics_itemオペランドの指定に従います。

dcclttroptiitem=トランザクション最適化項目〔,トランザクション最適化項目〕…
複数のユーザサーバで構成されるグローバルトランザクションの性能を向上させるための最適化項目を，次の文字列で指定します。CUPからトランザクションを開始する場合にだけ有効です。

base

同期点取得処理全体（プリペア処理，コミット処理，およびロールバック処理）を最適化します。OpenTP1のトランザクション制御は2相コミット方式で実行しているため，二つのトランザクションブランチ間のコミット制御には，4回のプロセス間通信が必要となります。

次の条件をすべて満たす場合，親トランザクションブランチが子トランザクションブランチのコミット処理を代わりに実行することで，コミット制御で必要な4回のプロセス間通信を削減します。

・親トランザクションブランチと，子トランザクションブランチが同一OpenTP1下にあること。

・親トランザクションブランチが，子トランザクションブランチを同期応答型RPCで呼び出していること。

・子トランザクションブランチでアクセスしたリソースマネジャのXAインタフェース用オブジェクトが，親トランザクションブランチにもリンケージされていること。

asyncprepare

baseの指定条件を満たしていないため同期点取得処理全体の最適化ができない場合に，プリペア処理を最適化します。

次の条件をすべて満たす場合，親トランザクションブランチから発行されたRPCによって子トランザクションブランチがサービス要求を実行したときに，RPCが返される前にプリペア処理を実行することで，2回のプロセス間通信を削減します。

・baseを指定した最適化ができないこと。

・親トランザクションブランチが，子トランザクションブランチを同期応答型RPCで呼び出していること。

ただし，この最適化を実行した場合，親トランザクションブランチが発行した同期応答型RPCの応答時間が遅くなります。また，子トランザクションブランチは，プリペア処理からコミット処理までの間隔（親トランザクションブランチからの指示がないとトランザクションを決着できない状態）が大きくなります。そのため，親トランザクションブランチのOpenTP1がシステムダウンし，トランザクションブランチ間の連絡ができなくなると，ジャーナルファイルのスワップやチェックポイントダンプファイルの有効化が遅れ，子トランザクションブランチのOpenTP1もシステムダウンする場合があります。

トランザクション最適化項目は，重複して指定できます。ただし，優先順位は次のようになります。

1＞2

1：base
2：asyncprepare
この指定を省略した場合は，rapリスナーサービス定義のtrn_optimum_itemオペランドの指定に従います。

dcclttrwatchtime=トランザクション同期点処理時の最大通信待ち時間
～〈符号なし整数〉((1～65535))（単位：秒）
トランザクションの同期点処理で，トランザクションブランチ間で行う通信（プリペア，コミット，ロールバック指示，または応答など）の受信待ち時間の最大値を指定します。CUPからトランザクションを開始する場合にだけ有効です。
指定時間を過ぎても指示または応答がない場合は，該当するトランザクションブランチが2相コミットの1相目であればロールバックさせ，1相目完了後であればトランザクションサービスのシステムプロセスでトランザクション決着処理を再試行します。
この定義を省略した場合は，rapリスナーサービス定義のtrn_watch_timeオペランドの指定に従います。

dcclttrrbinfo=no｜self｜remote｜all
トランザクションブランチがロールバックした場合に，ロールバック要因に関する情報をログに取得するかどうかを指定します。CUPからトランザクションを開始する場合にだけ有効です。

no

ロールバック情報を取得しません。

self

ロールバック要因が発生したトランザクションブランチでだけ，ログにロールバック情報を取得します。

remote

selfに加え，他ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも，ログにロールバック情報を取得します。

all

remoteに加え，自ノードのトランザクションブランチからロールバック要求されたトランザクションブランチでも，ログにロールバック情報を取得します。

この指定を省略した場合は，rapリスナーサービス定義のtrn_rollback_information_putオペランドの指定に従います。

dcclttrlimittime=トランザクションブランチ最大実行可能時間
～〈符号なし整数〉((0～65535))（単位：秒）
トランザクションブランチの最大実行可能時間を指定します。CUPからトランザクションを開始する場合だけ有効です。
トランザクションブランチを開始してから同期点処理が終了するまでの時間がこのオペランドの指定時間を超えないように，rpcCallメソッドおよび同期点処理内で行う通信のタイムアウト時間を，次のように自動設定します。

rpcCallメソッドのタイムアウト時間
「K≧このオペランドの指定時間」の場合：要求処理を実行しないで，タイムアウトでエラーリターンします。
「K＜このオペランドの指定時間」および「（このオペランドの指定時間－K）≧W」の場合：Wをタイムアウト時間とします。
「K＜このオペランドの指定時間」および「（このオペランドの指定時間－K）＜W」の場合：（このオペランドの指定時間－K）をタイムアウト時間とします。
「K」「W」の内容は次のとおりです。
K：現時刻－トランザクションブランチ開始時刻
W：dcwatchtimオペランド指定時間

同期点処理内で行う通信のタイムアウト時間
「K≧このオペランドの指定時間」の場合：タイムアウト時間を1秒とします。
「K＜このオペランドの指定時間」および「（このオペランドの指定時間－K）≧W」の場合：Wをタイムアウト時間とします。
「K＜このオペランドの指定時間」および「（このオペランドの指定時間－K）＜W」の場合：（このオペランドの指定時間－K）をタイムアウト時間とします。
「K」「W」の内容は次のとおりです。
K：現時刻－トランザクションブランチ開始時刻
W：dcclttrwatchtimeオペランド指定時間（dcclttrwatchtimeオペランドを省略した場合はdcwatchtimオペランド指定時間）

上記の受信待ち以外の処理で時間が掛かった場合は，このオペランドの指定時間内にトランザクションブランチが終了しないことがあります。
同期点処理開始前にこのオペランドの指定時間が経過した場合，そのトランザクションはロールバックされます。
0を指定した場合は，時間監視を行いません。
この定義を省略した場合は，rapリスナーサービス定義のtrn_limit_timeオペランドの指定に従います。

dcclttrrbrcv=Y｜N
RPC先トランザクションブランチにロールバック指示を送信したあと，ロールバック完了通知を受信するかどうかを指定します。CUPからトランザクションを開始する場合にだけ有効です。

Y：ロールバック完了通知を受信します。

N：ロールバック完了通知を受信しません。

Nを指定した場合，RPC先トランザクションブランチからのロールバック完了通知を受信しないで（RPC先トランザクションブランチのロールバック処理の完了を待たないで）自トランザクションブランチを終了します。
この定義を省略した場合は，rapリスナーサービス定義のtrn_rollback_response_receiveオペランドの指定に従います。

dcclttrrecoverytype=type1｜type2｜type3
UAP障害時のトランザクション同期点処理方式を指定します。CUPからトランザクションを開始する場合にだけ有効です。
RPCがタイムアウトし，RPC発行先プロセスのアドレスが未解決の場合およびトランザクション実行中のUAPがダウンした場合に，トランザクションブランチ間の連絡がスムーズにできないため，トランザクションの決着に時間が掛かることがあります。
このオペランドでは，次に示す障害が発生した場合のトランザクション同期点処理方式を，指定値に示す三つの方式から選択して指定します。

（障害1）RPCがタイムアウトした場合

この場合，RPC発行元トランザクションブランチは，サービス要求がどのプロセスで実行されているかがわからないため，RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため，RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチはトランザクション同期点メッセージ待ちとなり，トランザクションの決着に時間が掛かります。

（障害2）rapサーバがRPCの応答受信前にダウンした場合

この場合，RPC発行元トランザクションブランチは，サービス要求がどのプロセスで実行されているかがわからないため，RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信できません。そのため，RPC発行先トランザクションブランチはトランザクション同期点メッセージ待ちとなり，トランザクションの決着に時間が掛かります。

（障害3）RPC発行先UAPからの応答受信後にrapサーバとRPC発行先UAPがほぼ同時にダウンした場合

この場合，それぞれのトランザクションブランチを引き継いだトランザクション回復プロセスは，相手プロセスのダウンを知らないため，すでに存在しないプロセスにトランザクション同期点メッセージを送信してしまい，トランザクションの決着に時間が掛かることがあります。

それぞれの指定値が示す処理方式について説明します。

type1

（障害1）が発生した場合，RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは，トランザクション同期点メッセージ受信処理がタイムアウトすることによって，トランザクションを決着します。

（障害2）が発生した場合，RPC発行元トランザクションブランチは，RPC発行先トランザクションブランチにトランザクション同期点メッセージを送信しないでトランザクションを決着します。RPC発行先トランザクションブランチは，トランザクション同期点メッセージ受信処理がタイムアウトすることによって，トランザクションを決着します。

（障害3）が発生した場合，RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは，トランザクション同期点メッセージ受信処理がタイムアウトすることによって，トランザクションを決着します。

type2

（障害1）が発生してトランザクションをコミットする場合はtype1と同じです。

（障害1）が発生してトランザクションをロールバックする場合，または（障害2）が発生した場合は，RPC発行元トランザクションブランチは，RPC発行先トランザクションブランチが存在するノードのトランザクションサービスプロセスにトランザクション同期点メッセージを送信後，トランザクションを決着します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは，該当するトランザクションブランチを処理中のプロセスに，トランザクション同期点指示を送信します。

（障害3）が発生した場合，RPC発行元トランザクションブランチおよびRPC発行先トランザクションブランチは，トランザクション同期点メッセージ受信処理がタイムアウトすることによって，トランザクションを決着します。

type3

（障害1）が発生してトランザクションをコミットする場合は，type1と同じです。

（障害1）が発生してトランザクションをロールバックする場合，（障害2）が発生した場合，または（障害3）が発生した場合，相手トランザクションブランチが存在するノードのトランザクションサービスプロセスに，トランザクション同期点メッセージを送信します。トランザクション同期点メッセージを受信したトランザクションサービスプロセスは，該当するトランザクションブランチを処理中のプロセスに，トランザクション同期点指示を送信します。

次に示す場合，このオペランドにtype2またはtype3を指定しても，トランザクションの決着に時間が掛かることがあります。

RPC実行中に，RPC発行先UAPの状態が変更となり（負荷増加，UAP終了，UAP閉塞など），ほかのノードの同一UAPにサービス要求が再転送された場合

相手先のOpenTP1がこのオプションをサポートしていないバージョンの場合

相手先トランザクションブランチがトランザクション同期点メッセージ受信処理以外で時間が掛かっている場合

この定義を省略した場合は，rapリスナーサービス定義のtrn_partial_recovery_typeオペランドの指定に従います。

dcclttrexptm=トランザクションブランチ限界経過時間
～〈符号なし整数〉((0～65535))（単位：秒）
トランザクションブランチの処理時間の最大値を指定します。CUPからトランザクションを開始する場合にだけ有効です。
指定時間を超えてもトランザクションブランチが完了しないとき，そのトランザクションブランチのプロセスを異常終了させて，ロールバックします。0を指定した場合は，時間監視をしません。
この指定を省略した場合，rapリスナーサービス定義のtrn_expiration_timeオペランドの指定に従います。
なお，RPC機能を使用した場合に，他プロセスで実行するトランザクションブランチの処理時間も監視時間に含むかどうかは，TP1/Client/J環境定義のdcclttrexpspオペランドで指定してください。

dcclttrcputm=トランザクションブランチCPU監視時間
～〈符号なし整数〉((0～65535))（単位：秒）
トランザクションブランチが同期点処理までに使用できるCPU時間を指定します。CUPからトランザクションを開始する場合にだけ有効です。
0を指定した場合，CPU時間を監視しません。
指定時間を超えた場合は，そのトランザクションブランチのプロセスを異常終了させ，ロールバックします。
この指定を省略した場合は，rapリスナーサービス定義のtrn_cpu_timeオペランドの指定に従います。

dcclttrexpsp=Y｜N｜F
トランザクションブランチの処理を監視するとき，次の処理時間も監視時間に含むかどうかを指定します。

監視対象のトランザクションブランチが，RPC機能を使ってほかのトランザクションブランチを呼び出し，その処理が終わるのを待つ時間

連鎖型RPCで呼び出されたサーバUAPが次のサービス要求を待つ時間

監視対象のトランザクションブランチが，非応答型RPCを使用してほかのトランザクションブランチを呼び出したあと，処理結果受信処理を行っている時間

それぞれの指定値について説明します。

Y：1，2，3すべてを監視時間に含みます。

N：3だけを監視時間に含みます。

F：1，2，3のどれも監視時間に含みません。

この指定を省略した場合は，rapリスナーサービス定義のtrn_expiration_time_suspendオペランドの指定に従います。

dcsndrcvtype=DCCLT_ONEWAY_SND｜DCCLT_ONEWAY_RCV｜DCCLT_SNDRCV
TCP/IP通信機能の使用時に初期化する環境を指定します。
このオペランドを指定してない場合は，TCP/IP通信機能を使用できません。

DCCLT_ONEWAY_SND：メッセージを一方送信するための環境

DCCLT_ONEWAY_RCV：メッセージを一方受信するための環境

DCCLT_SNDRCV：メッセージを送受信するための環境

dcrcvport=受信用のCUPのポート番号
～〈符号なし整数〉((1～65535))《11000》
MHPから送信されたメッセージを受信するCUPのポート番号を指定します。MHPがメッセージを送信するために使用するポート番号と同じ値を指定してください。同一マシン内で，複数のプロセスまたはスレッドを同時に実行する場合は，それぞれ異なるポート番号を指定してください。
指定できるポート番号でも，OSまたはほかのプログラムで使用するポート番号は指定しないでください。指定した場合，応答データを正しく受信できないことがあります。なお，OSが使用するポート番号は，OSごとに異なります。OSのマニュアルなどを参照してください。

dcsndhost=接続するMHPが存在するノードのホスト名　～〈文字列〉
CUPからメッセージを送信する場合，コネクションを確立して接続するMHPが存在するノードのホスト名を指定します。
また，ホスト名として，10進ドット記法のIPアドレスを指定することもできます。

dcsndport=接続するMHPのポート番号
～〈符号なし整数〉((1～65535))《12000》
CUPからメッセージを送信する場合，コネクションを確立して接続するMHPのポート番号を指定します。dcnamportオペランドに指定するポート番号と重複しないように指定してください。

dcsockopenatrcv=Y｜N　～《N》
TCP/IP通信機能の使用時に，1コネクションで送受信する場合の，受信用ソケットを開設する契機（送信相手からの接続を待ち受け始める契機）を指定します。
なお，このオペランドの指定を省略した場合は，rpcOpenメソッド実行時に受信用ソケットを開設します。

Y：cltReceiveメソッド実行時に，コネクションが確立されていない場合は受信用ソケットを開設します。

N：rpcOpenメソッド実行時に，受信用ソケットを開設します。

dcweburl=サービス要求先のTP1/WebのURL　～〈パス名〉
サービス要求先のTP1/WebのURLを指定します。
プロトコル，WWWサーバ，プロンプターのCGI名称，TP1/Webのサービス名などの情報をURL形式で指定します。
dchostオペランドとdcweburlオペランドの両方を指定した場合は，dcweburlオペランドの指定が有効になります。
また，TP1/Web接続機能を使用する場合は，dcscddirectオペランドおよびdcnamuseオペランドを使用できません。dcweburlオペランドを定義して，かつdcscddirect=Yおよびdcnamuse=Yの場合は，定義エラーとなります。

dccltdbgtrcfilecount=デバッグトレースファイルの最大ファイル数
～〈符号なし整数〉((0～256))《0》
デバッグトレースファイルの最大ファイル数を指定します。0を指定した場合，ファイル数の制限はなくなります。デバッグトレースファイルの総数が，このオペランドの指定値を超えた場合，更新日時の最も古いファイルが削除されます。
dccltdbgtrcfilecountオペランドで異なる値を指定した複数のTP1Clientインスタンスを同時に使用した場合，実際の最大ファイル数は保証できません。
rpcOpenメソッド未発行の状態でTP1Clientインスタンスの作成した場合，dccltdbgtrcfilecountオペランドは，システムプロパティとしても定義できます。この場合，TP1Clientインスタンスの作成後にrpcOpenメソッドを発行すると，rpcOpenメソッドの内容を解析した結果を上書きして動作します。rpcOpenメソッドを発行するとシステムプロパティに定義されたdccltdbgtrcfilecountオペランドの指定は無効になります。
dccltdbgtrcfilecountオペランドの指定が不正な場合，エラーは通知されません。この場合，dccltdbgtrcfilecountオペランドの指定はデフォルト値が有効になります。

dccltrpcmaxmsgsize=RPC送受信電文の最大長
～〈符号なし整数〉((1～8))《1》（単位：メガバイト）
RPCで受け渡しできる電文の最大長を指定します。
rpcCallメソッドで送受信できるRPC電文の最大長は，このオペランドを省略した場合，またはデフォルト値（1）を指定した場合は，1メガバイト（1048576バイト）です。このオペランドに指定できる最大値（8）を指定した場合は，8メガバイト（8388608バイト）です。このオペランドの指定よりも大きいサイズの送信メッセージ長および受信メッセージ長を，rpcCallメソッドの引数に指定することはできません。送信メッセージ長または受信メッセージ長がこのオペランドの指定値よりも大きい場合，rpcCallメソッドはErrInvalidArgsExceptionを返します。
dccltrpcmaxmsgsizeオペランドを指定した場合，次の機能は使用しないでください。通信先のTP1/Serverノードでエラーが発生します。

スケジューラダイレクト機能を使用したRPC

通信先を指定したRPC

TP1/Web接続機能

システム共通定義のrpc_max_message_sizeオペランドをサポートしているTP1/Server（バージョン06-02以降）以外のTP1/Serverにサービス要求した場合の動作については次の表を参照してください。

表5-3　dccltrpcmaxmsgsizeオペランドに2以上を指定した場合のrpcCallメソッドの動作

メソッド | RPCの種類を指定する定義 | 窓口となるTP1/Serverのバージョン | ノードのバージョン※1
06-02より前の場合 | 06-02以降の場合※2
rpcCall | dcrapdirect=Y | 06-02より前 | ×※3 | ×※3
06-02以降 | ×※4 | ○
dcnamuse=Y | 06-02より前 | ×※4 | ○
06-02以降 | ×※4 | ○

（凡例）

○：要求できます。

×：要求できません。

注※1

窓口となるTP1/Serverに指定されているall_nodeオペランドで定義された，SPPを起動しているノードのバージョンです。

注※2

システム共通定義にrpc_max_message_sizeオペランドを指定している場合。

注※3

入力データ長が1メガバイト以上の場合は，ErrMessageTooBigExceptionが発生し，入力データ長が1メガバイト以下で出力領域長が1メガバイト以上の場合はErrInvalidArgsExceptionが発生します。

注※4

ErrNoSuchServiceGroupExceptionが発生します。

dcscdhostchange=Y｜N　～《N》
TP1/Client/J環境定義のdchostオペランドに指定したサービス要求先スケジューラをRPCごとに分散させるかどうかを指定します。

Y：サービス要求先スケジューラをRPCごとに分散させます。

N：サービス要求先スケジューラをRPCごとに分散させません。

Yを指定した場合の処理を説明します。
RPCでのサービス要求が1度目の場合，TP1/Client/J環境定義にdchostselect=Yを指定したときは，TP1/Client/J環境定義のdchostオペランドに指定したサービス要求先スケジューラがランダムに選択されます。TP1/Client/J環境定義にdchostselect=Nを指定したときは，TP1/Client/J環境定義のdchostオペランドの先頭に指定したサービス要求先スケジューラが選択されます。
RPCでのサービス要求が2度目以降の場合，前回のサービス要求先スケジューラからdchostオペランドで指定した順にラウンドロビン方式でサービス要求先スケジューラが選択されます。

dccltloadbalance=Y｜N　～《N》
ネームサーバから得た複数のサービス要求先スケジューラの情報から，負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納するかどうかを指定します。

Y：負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納します。

N：負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納しません。

Yを指定した場合の処理を説明します。
キャッシュに格納されたサービス要求先スケジューラが複数ある場合，最初のサービス要求先スケジューラは，ランダムに選択されます。RPCでのサービス要求が2度目以降の場合，キャッシュに格納されたサービス要求先スケジューラが，ラウンドロビン方式で選択されます。
負荷レベルの詳細については，マニュアル「OpenTP1 解説」を参照してください。

dccltcachetim=キャッシュの有効期限
～〈符号なし整数〉((0～65535))《30》（単位：秒）
サービス要求先スケジューラの情報をキャッシュに格納した時点からの，キャッシュの有効期限を指定します。キャッシュの有効期限を満了したサービス要求先スケジューラの情報は，キャッシュから削除されます。その後，サービス要求先スケジューラの情報を再度取得して，その情報をキャッシュに格納することで，キャッシュを更新します。
このオペランドは，TP1/Client/J環境定義にdccltloadbalance=Yを指定したときだけ有効です。

dccltconnecttimeout=コネクション確立最大監視時間
～〈符号なし整数〉((0～65535))《0》（単位：秒）
データ送信時のコネクション確立処理に対する最大監視時間を指定します。
このオペランドで指定する値は，java.net.Socket.connectメソッド（以降「connectメソッド」と呼びます）の処理時間ではなく，connectメソッドで実行されるコネクションの確立処理に掛かる最大監視時間です。
相手システムが起動していないなどの要因でコネクションを確立できない場合，このオペランドで指定した監視時間が経過する前にCUPから発行したメソッドがエラーリターンすることがあります。これは，このオペランドで指定した最大監視時間よりも，OSによるコネクション確立処理の監視時間が優先されるためです。OSによるコネクション確立処理の監視時間，コネクション確立要求の再送回数および再送処理の間隔は，プラットフォームによって異なります。また，使用するメソッドや機能によっては，connectメソッドの処理時間がこのオペランドで指定した値よりも大きくなる場合があります。
0を指定した場合，またはこのオペランドの指定を省略した場合は，OSがコネクションの確立処理を監視します。

dccltprftrace=Y｜N　～《Y》
TP1/Client/JをCosminexus Application Server上で動作させた場合に，Cosminexus Application Serverの性能解析トレースを取得するかどうかを指定します。

Y：性能解析トレースを取得します。ただし，PRFデーモンが起動していない場合は性能解析トレースを取得しません。

N：性能解析トレースを取得しません。

dccltprfinfosend=Y｜N　～《Y》
TP1/Serverに対して，ネームサービスを使用したRPC，およびスケジューラダイレクト機能を使用したRPCを行う場合に，OpenTP1の性能検証用トレースに出力する情報としてTP1/Client/J内部で識別情報（IPアドレスなど）を付加するかどうかを指定します。

Y：TP1/Client/J内部で識別情報を付加します。

N：TP1/Client/J内部で識別情報を付加しません。

dccltnammlthost=Y｜N　～《N》
マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うかどうかを指定します。

Y：マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行います。RPCの要求先を複数定義している場合，またはマルチホームドホスト形態のTP1/Serverが一つ以上ある場合に指定してください。

N：マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行いません。マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行うと，エラーが発生する場合があります。

詳細については，「2.2.9(3)　マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義」を参照してください。

dccltdatacomp=Y｜N　～《N》
データ圧縮機能を使用するかどうかを指定します。

Y：データ圧縮機能を使用します。

N：データ圧縮機能を使用しません。

dccltconnectinf=端末識別情報
端末識別情報として，DCCM3論理端末の論理端末名称をEBCDIKコードで指定します。端末識別情報は，先頭に0xを付け，0xの後ろに128文字までの16進数表記で指定します。先頭の0xは128文字に含まれません。2文字で1バイトの値として，64バイト（128文字）まで指定できます。ただし，DCCM3側では先頭8バイト目までに指定した値だけが有効になり，9バイト目以降に指定した値は無視されます。
このオペランドに指定した値は，setConnectInformationメソッドを呼び出すことで，動的に変更できます。このオペランドに指定した値は，setConnectInformationメソッドを呼び出したあと，再びrpcOpenメソッドを呼び出すまで無視されます。
このオペランドに指定した値は，TP1/Client/J環境定義のdchostオペランドにDCCM3論理端末のホスト名を，dchostオペランドまたはdcrapportオペランドにDCCM3論理端末のポート番号を指定し，次のどちらかの方法でDCCM3論理端末との常設コネクションを確立した場合に有効となります。

openConnectionメソッドを呼び出します。引数有りのopenConnectionメソッドの場合，引数hostにDCCM3論理端末のホスト名，引数portにDCCM3論理端末のポート番号を指定します。

TP1/Client/J環境定義のdcrapautoconnectオペランドにYを指定し，rpcCallメソッドを呼び出します。

このオペランドの指定を省略した場合，DCCM3論理端末に端末識別情報は通知されません。ただし，setConnectInformationメソッドを呼び出した場合は，setConnectInformationメソッドに指定した端末識別情報が，DCCM3論理端末との常設コネクション確立時にDCCM3論理端末に通知されます。

dcscdmulti=Y｜N　～《N》
マルチスケジューラ機能を使用するかどうかを指定します。

Y：マルチスケジューラ機能を使用します。

N：マルチスケジューラ機能を使用しません。

マルチスケジューラ機能を使用すると，複数起動されたマルチスケジューラデーモンの中から，一つをランダムに選択することで，スケジューリングの負荷を軽減できます。
この定義にYを指定した場合，TP1/Client/J環境定義dchost，dcscdport，dcscdmulticountも併せて参照してください。また，この定義は，rpcCallToメソッド実行時は無効です。

dcscdmulticount=マルチスケジューラデーモンのプロセス数　～〈符号なし整数〉((1～4096))《1》
マルチスケジューラデーモンのプロセス数を指定します。スケジュールサービス定義scdmultiの-mオプションに指定したプロセス数か，またはそれ以下の値を指定します。
この定義は，TP1/Client/J環境定義にdcscdmulti=Yおよびdcscddirect=Yを指定した場合に有効です。なお，この場合，ポート番号は，次に示す範囲の値からランダムに選択されます。

下限値：dchostまたはdcscdportに指定したポート番号の値

上限値：下限値 + dcscdmulticountに指定したプロセス数 - 1

このポート番号の最大値が65535を超える場合は，定義解析でErrFatalException，およびsetDchostでErrInvalidPortExceptionが発生します。
scdmultiの-mオプションに指定したプロセス数よりも大きい値を指定した場合，マルチスケジューラが起動していないポートに接続を試み，ErrNetDownAtClientExceptionが発生する場合があります。

dccltcupsndhost=送信元ホスト　～〈文字列〉
次に示すコネクション確立要求時の，送信元ホストを指定します。

スケジューラダイレクト機能を使用したRPC

ネームサービスを使用したRPC

リモートAPI機能を使用したRPC

通信先を指定したRPC

TCP/IP通信機能

ホスト名として，10進ドット記法のIPアドレスを指定することもできます。
なお，次の場合は，発行したメソッドで例外が発生します。

ホスト名としてlocalhostを指定した場合

127で始まるIPアドレスを指定した場合

CUPを実行するマシン上に存在しないホストを指定した場合

この定義を省略すると，送信元ホストは任意に割り当てられます。

dccltcuprcvport=CUPの受信で使用するポート番号　～〈符号なし整数〉((5001～65535))
サーバからのメッセージを受信するCUPのポート番号を指定します。
この定義で指定したポート番号は，次の機能を使用する場合に有効となります。

スケジューラダイレクト機能を使用したRPCの受信時（受信ポート）

ネームサービスを使用したRPCの受信時（受信ポート）

この定義を省略すると，システムが任意に割り当てたポート番号を使用します。
同一マシン内で，複数のプロセス，または複数のスレッドを同時に実行する場合は，それぞれ異なるポート番号を指定してください。
指定できるポート番号でも，OSまたはほかのプログラムで使用するポート番号は指定しないでください。指定した場合，応答データを正しく受信できないことがあります。なお，OSが使用するポート番号は，OSごとに異なります。OSのマニュアルなどを参照してください。

dcclttrcmplmttm=トランザクション完了限界時間　～〈符号なし整数〉((0～65535))（単位：秒）
rapサーバで代理実行するトランザクションブランチの，開始から終了までの最大実行時間を指定します。この指定時間を超えた場合，rapサーバのプロセスが異常終了したあとに，トランザクションブランチが回復プロセスでコミット，またはロールバックのどちらかに決着して終了します。
0を指定した場合は，トランザクションブランチの最大実行時間を監視しません。
この指定を省略した場合は，rapリスナーサービス定義のtrn_completion_limit_timeオペランドの指定に従います。
この機能をバージョン07-01以前のTP1/Serverに対して使用した場合，機能が無効の状態で動作します。

5.2.3　TP1/Client/J環境定義を指定するときの注意事項

TP1/Client/J環境定義のオペランドを記述した行に，設定値以外の文字を記述しないでください。設定値以外の文字を記述した場合，rpcOpenメソッドがErrFatalExceptionを返す場合があります。

TP1/Client/Jは，TP1/Client/J環境定義のオペランドで始まる行（行頭の空白およびタブは無視されます）を定義解析対象とします。TP1/Client/J環境定義のオペランド以外の文字列が指定された行は，すべてコメント行とみなされます。

6.　障害対策

障害が発生した場合の対処方法について説明します。

＜この章の構成＞

6.1　トレース情報の採取

6.2　ネットワーク障害時の対処

6.3　タイマ設定値の妥当性

6.4　その他の障害の対処

6.1　トレース情報の採取

TP1/Client/Jのトラブルシュート機能で，次のトレースを取得できます。

UAPトレース

データトレース

エラートレース

メモリトレース

メソッドトレース

デバッグトレース

性能解析トレース

性能検証用トレース

トラブルシュートを容易にするため，トレース情報の取得をお勧めします。障害発生時は，トレース情報を基に原因を調査してください。なお，障害発生時にトレースを取得していない場合は，トレースを取得するように設定してから，障害が発生した現象を再現して，トレース情報を取得してください。

トレース情報の詳細については，「2.11　トラブルシュート機能」を参照してください。

6.2　ネットワーク障害時の対処

ネットワーク障害が発生しても，JDK 5.0環境では十分な障害情報を取得できません。Java環境以外のネットワークツールを使用して障害の原因を調査することをお勧めします。

6.3　タイマ設定値の妥当性

TCP/IP通信を使用したシステムでは，TCP/IPの制限から，障害の発生をリアルタイムには検出できません。このため，障害検出の契機は時間監視のタイムアウト時です。OpenTP1システムでは，処理ごとに時間監視を設定できるので，各設定値には最適な値を設定してください。

rapサーバへのコネクション確立中，rapサーバ側でシステムダウンなどの障害があった場合，Javaではコネクションが切断されたことを検知できません。この場合，setDcwatchtimメソッドで指定した応答待ち時間を満了するまで待ったあと，ErrTimedOutException例外でエラーリターンします。

6.4　その他の障害の対処

障害の原因が，TP1/Server側のrapサーバおよびサービス要求先のTP1/Serverの障害であったり，定義値の誤りであったりすることも考えられます。この場合，TP1/Serverのログファイルなどを参照して調査してください。

付録

＜この付録の構成＞

付録A　バージョンアップ時の変更点

付録A　バージョンアップ時の変更点

各バージョンでの変更点を次に示す分類ごとに示します。

API，定義およびコマンドの追加と削除

動作の変更

API，定義およびコマンドのデフォルト値の変更

＜この節の構成＞

付録A.1　07-02での変更点

付録A.2　07-01での変更点

付録A.3　07-00での変更点

付録A.1　07-02での変更点

TP1/Client/J 07-02でのAPI，定義およびコマンドの追加と削除を次の表に示します。

表A-1　TP1/Client/J 07-02でのAPI，定義およびコマンドの追加

種別
分類
内容

追加
API
TP1Clientクラス

acceptNotificationメソッド

cancelNotificationメソッド

openNotificationメソッド

acceptNotificationChainedメソッド

closeNotificationメソッド

ErrVersionExceptionクラス

ErrAcceptCanceledExceptionクラス

定義
TP1/Client/J環境定義

dcscdmultiオペランド

dcscdmulticountオペランド

dccltcupsndhostオペランド

dccltcuprcvportオペランド

dcclttrcmplmttmオペランド

コマンド
なし

削除
なし

TP1/Client/J 07-02での動作の変更点を次の表に示します。

表A-2　TP1/Client/J 07-02での動作の変更点

分類 | 内容
API | setUapTraceModeメソッド，setErrorTraceModeメソッド，setMethodTraceModeメソッド，setDataTraceModeメソッドで，UAPトレースを取得するように変更
定義 | なし
コマンド | なし
その他 | リモートAPI機能を使用したRPCで，TP1/Serverの性能検証用トレースにTP1/Client/Jのインスタンスごとに一意である識別情報を出力するように変更
UAPトレースにTP1/Client/Jのインスタンスごとに一意である識別情報を出力するように変更

TP1/Client/J 07-02でのAPI，定義およびコマンドのデフォルト値の変更はありません。

付録A.2　07-01での変更点

TP1/Client/J 07-01でのAPI，定義およびコマンドの追加と削除を次の表に示します。

表A-3　TP1/Client/J 07-01でのAPI，定義およびコマンドの追加

種別
分類
内容

追加
API
TP1Clientクラス

setConnectInformationメソッド

定義
TP1/Client/J環境定義

dccltdatacompオペランド

dccltconnectinfオペランド

コマンド
なし

削除
なし

TP1/Client/J 07-01での動作の変更点を次の表に示します。

表A-4　TP1/Client/J 07-01での動作の変更点

分類 | 内容
API | なし
定義 | なし
コマンド | なし
その他 | TP1/Client/JからTP1/Serverへの接続時，自システムの自動割当てポートの不足によるエラー（java.net.BindException例外）が発生した場合に，リトライ処理を行うように変更
SPPから応答電文受信処理中に一時クローズ要求電文を受信した場合，その一時クローズ要求電文を破棄して本来の応答電文を受信し，なおも受信待ちを不当に行い，ErrClientTimedOutException例外が発生する問題を修正
XAリソースサービス機能の使用時にTP1/Client/Jから不正なErrRMErrException例外がスローされないように修正

TP1/Client/J 07-01でのAPI，定義およびコマンドのデフォルト値の変更はありません。

付録A.3　07-00での変更点

TP1/Client/J 07-00でのAPI，定義およびコマンドの追加と削除を次の表に示します。

表A-5　TP1/Client/J 07-00でのAPI，定義およびコマンドの追加

種別
分類
内容

追加
API
なし

定義
TP1/Client/J環境定義

dccltnammlthostオペランド

コマンド
なし

削除
なし

TP1/Client/J 07-00での動作の変更点を次の表に示します。

表A-6　TP1/Client/J 07-00での動作の変更点

分類 | 内容
API | なし
定義 | なし
コマンド | なし
その他 | TP1/Client/JがサポートするJDKのバージョンを，Java(TM)2 Software Development Kit, Standard Edition, Version 5.0（JDK 5.0）以降に変更

TP1/Client/J 07-00でのAPI，定義およびコマンドのデフォルト値の変更はありません。

索引

[Ａ][Ｃ][Ｄ][Ｅ][Ｇ][Ｏ][Ｐ][Ｒ][Ｓ][Ｔ][Ｕ][Ｘ]
[ア行][カ行][サ行][タ行][ナ行][ハ行][マ行][ラ行]

(英字)

(Ａ)

acceptNotification

acceptNotificationChained

acceptNotificationChainedメソッドの各種情報

acceptNotificationメソッドの各種情報

API一覧

APIの実行順序

APIの使用方法

(Ｃ)

cancelNotification

cancelNotificationメソッドの各種情報

closeConnection

closeConnectionメソッドの各種情報

closeNotification

cltAssemReceive

cltAssemReceiveメソッドの各種情報

cltAssemSend

cltAssemSendメソッドの各種情報

cltReceive

cltReceiveメソッドの各種情報

cltSend

cltSendメソッドの各種情報

connectメソッド

connectメソッドがタイムアウトした場合の例外

connectメソッドを使用するAPI

Cosminexus Application Serverでの性能解析トレースの出力

Cosminexus Application ServerとOpenTP1とのトレースの照合

Cosminexus Application Serverの性能解析トレースを取得する〔定義〕

CUPの最大応答待ち時間をrapサーバ側に引き継ぐ〔定義〕

CUPの最大応答待ち時間をTP1/Server側に引き継ぐ〔定義〕

CUPの受信で使用するポート番号〔定義〕

(Ｄ)

dccache

dccltcachetim

dccltconnectinf

dccltconnecttimeout

dccltcuprcvport

dccltcupsndhost

dccltdatacomp

dccltdbgtrcfilecount

dccltdelay

dccltextend

dccltinquiretime

dccltloadbalance

dccltnammlthost

dccltprfinfosend

dccltprftrace

dccltrpcmaxmsgsize

dcclttrcmplmttm

dcclttrcputm

dcclttrexpsp

dcclttrexptm

dcclttrlimittime

dcclttroptiitem

dcclttrrbinfo

dcclttrrbrcv

dcclttrrecoverytype

dcclttrstatisitem

dcclttrwatchtime

DCCM3とのRPC

DCCM3とのTCP/IP通信

DCCM3との接続機能

DCCM3論理端末への端末識別情報の通知

dcdatatrace

dcdatatracemaxsize

dcdatatracepath

dcdatatracesize

dcerrtrace

dcerrtracepath

dcerrtracesize

dchost

dchostselect

dcmethodtrace

dcmethodtracepath

dcmethodtracesize

dcnamport

dcnamuse

dcrapautoconnect

dcrapdirect

dcrapport

dcrcvport

DCRpcBindTbl

dcscddirect

dcscdhostchange

dcscdloadpriority

dcscdmulti

dcscdmulticount

dcscdport

dcselint

dcsndhost

dcsndport

dcsndrcvtype

dcsockopenatrcv

dcuaptrace

dcuaptracepath

dcuaptracesize

dcwatchtim

dcwatchtiminherit

dcwatchtimrpcinherit

dcweburl

(Ｅ)

ErrAcceptCanceledException

ErrBufferOverflowException

ErrClientTimedOutException

ErrCollisionMessageException

ErrConnfreeException

ErrConnRefusedException

ErrFatalException

ErrHazardException

ErrHazardNoBeginException

ErrHeuristicException

ErrHeuristicNoBeginException

ErrHostUndefException

ErrInitializingException

ErrInvalidArgsException

ErrInvalidMessageException

ErrInvalidPortException

ErrInvalidReplyException

ErrIOErrException

ErrMessageTooBigException

ErrNetDownAtClientException

ErrNetDownAtServerException

ErrNetDownException

ErrNoBeginException

ErrNoBufsAtServerException

ErrNoBufsException

ErrNoSuchServiceException

ErrNoSuchServiceGroupException

ErrNotTrnExtendException

ErrNotUpException

ErrProtoException

ErrReplyTooBigException

ErrRMException

ErrRollbackException

ErrRollbackNoBeginException

ErrSecchkException

ErrSecurityException

ErrServerBusyException

ErrServerTimedOutException

ErrServiceClosedException

ErrServiceNotUpException

ErrServiceTerminatedException

ErrServiceTerminatingException

ErrSyserrAtServerException

ErrSyserrException

ErrTestmodeException

ErrTimedOutException

ErrTMException

ErrTrnchkException

ErrTrnchkExtendException

ErrVersionException

(Ｇ)

getTrnID

getTrnIDメソッドの各種情報

(Ｏ)

openConnection ,[2] ,[3]

openConnection()メソッドおよびopenConnection(host,port)メソッドの各種情報

openConnection(url,flags)メソッドの各種情報

openNotification

openNotificationメソッドの各種情報

(Ｐ)

PRFトレース

(Ｒ)

rapリスナーおよびrapサーバとの常設コネクションの切断

rapリスナーのポート番号〔定義〕

RPC

rpcCall ,[2]

rpcCallTo

rpcCallToメソッドの各種情報

rpcCallメソッドの各種情報

rpcClose

rpcOpen ,[2]

rpcOpenメソッドの各種情報

RPC環境の解放

RPC環境の初期化

RPC送受信電文の最大長〔定義〕

(Ｓ)

ServerSocketを使用するRPC

setConnectInformation

setConnectInformationメソッドの各種情報

setDataTraceMode

setDataTraceModeメソッドの各種情報

setDccltdelay

setDccltdelayメソッドの各種情報

setDccltextend

setDccltextendメソッドの各種情報

setDccltinquiretime

setDccltinquiretimeメソッドの各種情報

setDchost

setDchostメソッドの各種情報

setDcselint

setDcselintメソッドの各種情報

setDcwatchtim

setDcwatchtimメソッドの各種情報

setErrorTraceMode

setErrorTraceModeメソッドの各種情報

setMethodTraceMode

setMethodTraceModeメソッドの各種情報

setRpcextend

setRpcextendメソッドの各種情報

setScdDirectObject

setTraceArray

setUapTraceMode

setUapTraceModeメソッドの各種情報

SPP

(Ｔ)

TCP/IPコネクションの確立の監視機能

TCP/IP通信機能

TCP/IP通信機能の使用時に初期化する環境〔定義〕

TP1/Client/J環境定義

TP1/Client/J環境定義の一覧

TP1/Client/J実行時の調整

TP1/Client/Jで使用するクラス

TP1/Client/Jの環境

TP1/Client/Jの使用準備

TP1/Client/Jの動作の仕組み

TP1/ServerとTP1/Client/Jの関係

TP1/Serverのrapサーバに接続

TP1/Web接続機能

TP1/Webとの接続（セションの開始）

TP1/Webとの接続解除（セションの終了）

TP1/Webと連携したRPC機能

TP1/Webへのサービス要求

TP1Client

TP1ClientException

TP1Clientクラスのインスタンス作成

trnBegin

trnBeginメソッドの各種情報

trnChainedCommit

trnChainedCommitメソッドの各種情報

trnChainedRollback

trnChainedRollbackメソッドの各種情報

trnInfo

trnInfoメソッドの各種情報

trnUnchainedCommit

trnUnchainedCommitメソッドの各種情報

trnUnchainedRollback

trnUnchainedRollbackメソッドの各種情報

(Ｕ)

UAP障害時のトランザクション同期点処理方式〔定義〕

UAPトレース

UAPトレースファイルサイズ〔定義〕

UAPトレースファイル作成ディレクトリ〔定義〕

UAPトレースを取得する〔定義〕

(Ｘ)

XAリソースサービス機能

(ア行)

(い)

インストール

(え)

エラートレース

エラートレースファイルサイズ〔定義〕

エラートレースファイル作成ディレクトリ〔定義〕

エラートレースを取得する〔定義〕

遠隔サービスの呼び出し（RPC）

(お)

オートコネクトモード

オペランド

(カ行)

(か)

開発環境

概要

(き)

機能

機能拡張レベルの設定〔定義〕

キャッシュの有効期限〔定義〕

(く)

クライアント機能の特長

(け)

現在のトランザクションに関する識別子の取得

現在のトランザクションに関する情報の報告

(こ)

コードとメソッド名の対応

コードと例外名の対応

コネクション確立最大監視時間〔定義〕

コミット

(サ行)

(さ)

サーバからの一方通知受信機能

サービス要求先スケジューラをRPCごとに分散させる〔定義〕

サービス要求先のTP1/WebのURL〔定義〕

最大応答待ち時間〔定義〕

最大通信遅延時間〔定義〕

(し)

時間監視 ,[2]

実行環境

受信ポート固定機能

受信メッセージの組み立て機能

受信用ソケットを開設する契機〔定義〕

受信用のCUPのポート番号〔定義〕

障害情報の採取および機能の調整

障害対策

障害発生時のトランザクションの同期点を検証する方法

常設コネクション

常設コネクション問い合わせ間隔最大時間〔定義〕

常設コネクションの確立・解放

常設コネクションを自動的に確立させる〔定義〕

(す)

スケジューラダイレクト機能

スケジューラダイレクト機能を使用したRPC〔定義〕

スケジュール機能

スケジュールサービスのポート番号〔定義〕

(せ)

性能解析トレース

性能解析トレースの取得情報

性能解析トレースのトレース取得ポイント

性能解析トレースを出力する場合の出力例

性能検証用トレース

性能検証用トレースに識別情報を付加する場合の出力例

性能検証用トレースに出力する情報としてTP1/Client/J内部で識別情報（IPアドレスなど）を付加する〔定義〕

接続するMHPが存在するノードのホスト名〔定義〕

接続するMHPのポート番号〔定義〕

(そ)

送信元ホスト〔定義〕

送信元ホスト指定機能

(タ行)

(た)

タイマ設定値の妥当性

端末固定割り当て機能

端末識別情報〔定義〕

端末識別情報設定機能

(つ)

通信先を指定したRPC

(て)

定義

定義の概要

定義の規則

データ圧縮機能

データ圧縮機能〔定義〕

データ圧縮機能の効果

データトレース

データトレースの最大データ長〔定義〕

データトレースファイルサイズ〔定義〕

データトレースファイル作成ディレクトリ〔定義〕

データトレースを取得する〔定義〕

デバッグトレース

デバッグトレースファイルの最大ファイル数〔定義〕

(と)

同期応答型RPC

同期応答型RPCタイムアウト時のサーバ負荷軽減

同期応答型RPCと同期点の関係

同期点取得

統計情報項目〔定義〕

動的定義変更機能

トラブルシュート機能

トランザクション完了限界時間〔定義〕

トランザクション最適化項目〔定義〕

トランザクション制御

トランザクション同期点処理時の最大通信待ち時間〔定義〕

トランザクションブランチCPU監視時間〔定義〕

トランザクションブランチ限界経過時間〔定義〕

トランザクションブランチ最大実行可能時間〔定義〕

トランザクションブランチの処理を監視〔定義〕

トランザクションブランチの統計情報を取得する項目〔定義〕

トレース出力の指示

トレース情報の採取

(ナ行)

(ね)

ネームキャッシュの最大エントリ数〔定義〕

ネームサービスのポート番号〔定義〕

ネームサービスを使用したRPC

ネームサービスを使用したRPC〔定義〕

ネットワーク障害時の対処

(の)

ノード間負荷バランス機能

(ハ行)

(ひ)

非応答型RPC

非応答型RPCと同期点の関係

非オートコネクトモード

ヒューリスティック発生時の処置

非連鎖モードのコミット

非連鎖モードのロールバック

(ふ)

ファイアウォール

ファイルアクセス権限の設定

負荷レベルが最も低いサービス要求先スケジューラの情報をキャッシュに格納する〔定義〕

プログラムインタフェース

(マ行)

(ま)

マスタスケジューラデーモン

窓口となるTP1/Server

窓口となるTP1/Server〔定義〕

窓口となるTP1/Serverを優先して負荷分散する〔定義〕

窓口となるTP1/Serverをランダムに選択する〔定義〕

マルチスケジューラ機能

マルチスケジューラ機能〔定義〕

マルチスケジューラ機能を使用したRPC

マルチスケジューラデーモン

マルチスケジューラデーモンのプロセス数〔定義〕

マルチホームドホスト形態のTP1/Serverに対してRPCを行う場合の定義

マルチホームドホスト形態のTP1/Serverに対してネームサービスを使用したRPCを行う〔定義〕

(め)

メソッドトレース

メソッドトレースファイルサイズ〔定義〕

メソッドトレースファイル作成ディレクトリ〔定義〕

メソッドトレースを取得する〔定義〕

メッセージ受信時の注意事項

メッセージ送信時の注意事項

メッセージの一方受信

メッセージの一方送信

メッセージの送受信

メモリトレース

(ラ行)

(り)

リモートAPI機能

リモートAPI機能〔定義〕

(れ)

連鎖型RPC

連鎖モードのコミット

連鎖モードのロールバック

(ろ)

ロールバック

ロールバック完了通知を受信する〔定義〕

ロールバック要因に関する情報をログに取得する〔定義〕

■ 商標類

日本国内においてのDCEの商標使用権は，OSFよりサブライセンスされています。
Internet Explorerは，米国Microsoft Corporationの米国及びその他の国における登録商標または商標です。
Java 及びすべてのJava関連の商標及びロゴは，米国及びその他の国における米国Sun Microsystems, Inc.の商標または登録商標です。
JDKは，米国 Sun Microsystems, Inc. の米国およびその他の国における商標または登録商標です。
Microsoftは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
UNIXは，X/Open Company Limited が独占的にライセンスしている米国ならびに他の国における登録商標です。
Windowsは，米国およびその他の国における米国Microsoft Corp.の登録商標です。
Windows Serverは，米国Microsoft Corporationの米国及びその他の国における登録商標です。
Windows Vistaは，米国Microsoft Corporationの米国及びその他の国における登録商標です。