現在地: LANSA テクニカル リファレンスガイド > 9. 組み込み関数 > 9.39 DEFINE_OS_400_SERVER

9.39 DEFINE_OS_400_SERVER

現在のRDMLファンクションに対するサーバーとして使用されるIBM iシステムの詳細を定義します。

定義の詳細は、永続的なものではなく、LANSA環境がアクティブな間だけ存続します。

サーバーを定義するのにかかる時間は、ほんのわずかです。

RDMLXファイルに対して実行するI/Oコマンドで、BIFであるDEFINE_ANY_SERVERを使用する必要があります。それ以外の場合は、サーバーでRDMLXファンクションを呼び出してください。

 

引数

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

SSN (サーバーの別名)。これは、今後のこのサーバーへのすべての参照でこのファンクションおよび他のRDMLファンクションが使用する名前です。

1

10

 

 

2

A

必須

LU パートナー名

1

20

 

 

3

A

必須

サーバー上でコミットメント制御を開始します。このサーバーの接続が完了すると、クライアントからRDMLレベルのCOMMITまたはROLLBACKコマンドが発行されるたびに、"commit"または"rollback"要求を受け取ります。

Yまたは1:コミットメント制御を使用

その他:コミットメント制御を使用しない

1

1

 

 

4

A

任意

サーバーがDBCSを使用可能かどうか指定

Yまたは1:DBCSを使用可能

その他:DBCSが使用できないサーバー

デフォルトはNです。

1

1

 

 

5

A

任意

LOCK_OBJECT要求をこのサーバーに転送します。このオプションを使用する場合は、後続するすべてのLOCK_OBJECT要求がこのサーバーに転送されます。複数のサーバーが共にこのオプションを使用可能に設定している場合、各サーバーとも同じLOCK_OBJECT要求を受け取ります。

このような場合は、LOCK_OBJECTを実行するすべてのサーバーが正常に処理を完了するためには、サーバーにロックが許可されている必要があります。1つのサーバーでロックの許可に失敗すると、すでにオブジェクトのロックが許可されているすべてのサーバーに対してUNLOCK_OBJECT要求が発行されます。

Yまたは1:LOCK_OBJECT要求を転送する

Z:LOCK_OBJECT要求を転送し、このサーバーに権限検査要求も転送する (権限検査要求を転送する対象としては、1つのサーバーのみ指定してください)

R:ロック要求、権限要求、リポジトリ・データ要求 (ローカルで検出されない場合) を経路指定する。X_RUNパラメータについては、「X_RUN コマンドの使用」を参照してください。

その他 - LOCK_OBJECT要求を転送しない

デフォルトはNです。

1

1

 

 

6

A

任意

接続待ちの間に「しばらくお待ちください」というメッセージを表示します。

Yまたは1:上記メッセージを表示する

その他:メッセージを表示しない

デフォルトはYです。

1

1

 

 

7

A

任意

IBM i実行の優先順位。デフォルトは20です。他の値は、IBM iのCHGJOBコマンドのRUNPTYパラメータに指定してください。指定された値を変更する権限がユーザーに許可されている必要があります。

1

2

 

 

8

A

任意

クライアントからサーバーへの変換テーブル名。ライブラリ名を指定することはできません。デフォルトでANSEBC1140に設定されます。

1

10

 

 

9

A

任意

サーバーからへクライアントの変換テーブル名。ライブラリ名を指定することはできません。デフォルトでEBC1140ANSに設定されます。

1

10

 

 

 

 

戻り値

番号

タイプ

必須/任意

記述

最小長

最大長

最小小数桁数

最大小数桁数

1

A

必須

戻りコード

OK:サーバーが定義された

ER:サーバーが未定義でエラー・メッセージが発行される

2

2

 

 

 

 

技術上の注記

コミット制御に関する注意事項

エラー処理に関する注意事項

複雑なエラー処理スキームをご使用のアプリケーションに組み込むことは避けるよう、強くお勧めします。アプリケーションのすべてのレベルで、以下のようなごく単純なトラップを使用するようにしてください。

if (#retcode *ne OK)

    abort msgtxt('Failed to .............................') 

endif

 

標準的なエラー処理を行う組み込み関数を生成されるアプリケーションに組み入れて、問題に対処するようにしてください。ユーザー定義のエラー処理ロジックが非常に複雑になったために全RDMLコードの40から50%を占有するようなケースもあります(アプリケーションには何のメリットもありません)。このような事態に陥らないようにしてください。

DBCSに関する考慮事項

サーバーがDBCS使用可能に指定されている場合は、クライアントのPC上に追加の変換テーブルが必要となります。

このテーブルは、X_CT<language code>.DATという名前で、X_LANSA\EXECUTEディレクトリに配置する必要があります。

<language code>の部分が "JPN" (日本語) の X_CTJPN.DAT という名前のテーブルは、日本語を使用するユーザー用のものです。

この変換ファイルの使用では、以下の点に注意してください。