なし
スクリプトホストリソースアダプタは、カスタムアダプタです。インストールプロセスを完了するには、次の手順を実行する必要があります。
スクリプトホストリソースを Identity Manager のリソースリストに追加するには、「管理するリソースの設定」ページの「カスタムリソース」セクションに次の値を追加する必要があります。
com.waveset.adapter.ScriptedHostResourceAdapter |
適切な JAR ファイルを Identity Manager インストールの WEB-INF/lib ディレクトリにコピーします。
Waveset.properties ファイルに次の定義を追加して、端末セッションを管理するサービスを定義します。
serverSettings.serverId.mainframeSessionType=Value serverSettings.default.mainframeSessionType=Value |
Value は、次のように設定できます。
Attachmate ライブラリが WebSphere または WebLogic アプリケーションサーバーにインストールされている場合は、com.wrq.profile.dir=LibraryDirectory プロパティーを WebSphere/AppServer/configuration/config.ini または startWeblogic.sh ファイルに追加します。
これにより、Attachmate コードでライセンスファイルを検索できます。
スクリプトホストアダプタでは、顧客が提供する Javascript が必要です。それらのスクリプトは Mozilla Rhino と互換性がある必要があります。Identity Manager には Mozilla Rhino v1_5R2 が用意されており、$WSHOME/WEB-INF/lib/javascript.jar にあります。
改善された Javascript エラー報告機能が必要な場合は、最新バージョンの Mozilla Rhino (http://www.mozilla.org/rhino/) を使うことで、構文エラーやその他のエラーに対するより適確なエラーメッセージを参照することができます。デフォルトの javascript.jar を、Mozilla から入手した新しいバージョンに置き換えることもできます。
Waveset.properties ファイルに加えた変更を有効にするために、アプリケーションサーバーを再起動します。
リソースへの SSL 接続の設定については、第 53 章メインフレーム接続を参照してください。
ここでは、スクリプトホストリソースアダプタの使用に関連する情報を提供します。 次のトピックで構成されています。
ホストリソースアダプタは、同じホストに接続している複数のホストリソースでの親和性管理者に対して最大接続数を強制しません。代わりに、各ホストリソース内部の親和性管理者に対して最大接続数が強制されます。
同じシステムを管理する複数のホストリソースがあり、現在それらが同じ管理者アカウントを使用するように設定されている場合は、同じ管理者がリソースに対して同時に複数のアクションを実行しようとしていないことを確認するために、それらのリソースを更新しなければならない可能性があります。
スクリプトホストアダプタのリソースウィザードの「リソースパラメータ」ページに表示されるテキストボックスで、ログイン、作成、削除、繰り返しなどのさまざまなプロビジョニングアクションにリソースアクションを指定できます。これらのフィールドは、リポジトリに読み込まれる Rhino Javascript を格納する ResourceAction オブジェクトを参照します。
現在のプロビジョニングアクションに対応する ResourceAction から Javascript を読み込む。
必要な Java 入力オブジェクトを Javascript で利用できるように準備する。
Javascript を起動する。
Javascript から返された結果 (または例外やエラー) を処理する。
$WSHOME/sample/ScriptedHost/ScreenSampleActions.xml ファイルには、理論上のスクリーンベースのホストアプリケーションにユーザーをプロビジョニングするのに使用できる、リソースアクション定義のサンプルセットが格納されています。それらの定義を、アプリケーションに合わせてカスタマイズする必要があります。
スクリプトホストアダプタは、次のプロビジョニングアクションに関するエンドユーザーのスクリプティングをサポートします。
説明 |
必須であるか |
|
---|---|---|
create |
新しいユーザーを作成します。 |
省略可能。 ただし、指定されていない場合は、ユーザーを作成できません。 |
delete |
既存のユーザーを削除します。 |
省略可能。 ただし、指定されていない場合は、ユーザーを削除できません。 |
disable |
既存のユーザーを無効にします。 |
省略可能。 ただし、指定されていない場合は、ユーザーを無効にできません。 |
enable |
既存のユーザーを有効にします。 |
省略可能。 ただし、指定されていない場合は、ユーザーを有効にできません。 |
getAccountIterator |
既存ユーザーの繰り返しの実行に使用されるオブジェクトを返します。 |
省略可能。 ただし、getAccountIterator も listAll も指定されていない場合は、アカウントの反復処理を実行できません。 |
getUser |
既存ユーザーの属性を取得します。 |
はい。 |
login |
アプリケーションにログインします。 |
はい。 |
logoff |
アプリケーションからログオフします。 |
はい。 |
listAll |
既存ユーザー ID のリストを返します。 |
省略可能。 ただし、getAccountIterator も listAll も指定されていない場合は、アカウントの反復処理を実行できません。 |
update |
既存ユーザーの属性を更新します。 |
省略可能。 ただし、指定されていない場合は、ユーザーを更新できません。 |
どのアクションスクリプトも、java.util.Map クラスで定義されているように、actionContext マップを受け取ります。マップに格納できる内容は、アクションごとに異なります。次のそれぞれの節では、各アクションについ説明し、そのアクションに関する次の情報を示します。
コンテキスト。スクリプトの実行前にアダプタが Javascript 実行コンテキストに追加する actionContext マップで使用できる、一連のエントリについて説明します。
エラー処理。異常やエラーの状況を、スクリプトがどのように処理するかを説明します。
前の表に示されたアクションの詳細については、次の各項を参照してください。
create アクションは、ホストアプリケーションにユーザーを作成します。create アクションが定義されていない場合は、新しいユーザーをホストアプリケーションに追加できません。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス。 |
action |
java.lang.String |
「create」という文字列。 |
id |
java.lang.String |
作成するユーザーのアカウント ID。 |
password |
java.lang.String |
存在する場合、これは新しいユーザーの復号化されたパスワードです。 |
attributes |
java.lang.Map |
新しいユーザーに設定する属性のマップ。キーは、設定する属性を識別します。 値は、その属性に設定する復号化された値です。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、作成の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、作成の失敗とみなされます。
delete アクションは、指定したユーザーをホストアプリケーションから削除します。delete アクションが定義されていない場合は、ホストアプリケーションからユーザーを削除できません。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
id |
java.lang.String |
削除するユーザーのアカウント ID。 |
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス |
action |
java.lang.String |
「delete」という文字列。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、削除の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、削除の失敗とみなされます。
disable アクションは、ホストアプリケーション内の既存のユーザーを無効にします。このアクションが定義されていない場合は、ホストアプリケーションのユーザーを無効にできません。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
action |
java.lang.String |
「disable」という文字列。 |
id |
java.lang.String |
無効にするアカウント ID。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、無効化の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、無効化の失敗とみなされます。
enable アクションは、ホストアプリケーション内の既存のユーザーを有効にします。このアクションが定義されていない場合は、ホストアプリケーションのユーザーを有効にできません。
コンテキスト
actionContext マップには次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
action |
java.lang.String |
「enable」という文字列。 |
id |
java.lang.String |
有効にするアカウント ID。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、有効化の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、有効化の失敗とみなされます。
getAccountIterator アクションは、既存ユーザーの反復処理の実行に使用するオブジェクトを返します。
アカウントの反復処理 (調整、リソースから読み込み) を実行する場合は、このアクションか listAll アクションのいずれかを定義する必要があります。
getAccountIterator アクションが定義されていない場合は、listAll を呼び出してから listAll のリスト内の ID ごとに getUser を呼び出すことによって、アカウントの反復処理が実行されます。
getAccountIterator アクションが定義されておらず、listAll アクションも定義されていない場合は、アカウントの反復処理はサポートされません。
入力値
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス |
action |
java.lang.String |
「getAccountIterator」という文字列。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
戻り値
スクリプトは、Java インタフェースの com.waveset.adapter.ScriptedHostAccessAdapter.ObjectIterator を実装する Java オブジェクトを返します。
public interface ObjectIterator { public boolean hasNext(); public void next(java.util.Map nextObj); public void close(); }
next() メソッドの nextObj マップ引数は、getUser アクションで説明されている result エントリと同じ方法で、スクリプトによって指定されます。
エラー処理
スクリプト内から例外がスローされた場合は、繰り返しの失敗とみなされます。
スクリプトから返された Java オブジェクトでメソッドを呼び出しているときに例外のスローが発生した場合も、繰り返しの失敗とみなされます。
getUser アクションは、ホストアプリケーションから次のいずれかの情報を取得します。
アダプタが特定ユーザーのユーザー属性を解析できる、画面または応答の文字列。
特定ユーザーのユーザー属性のマップ。
getUser アクションは、必ず定義してください。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス |
action |
java.lang.String |
「getUser」という文字列。 |
attrsToGet |
java.util.List |
取得するユーザー属性を識別する文字列のリスト。このリストは、スキーママップの右側から取得されます。 |
id |
java.lang.String |
取得するユーザーのアカウント ID。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
result |
java.util.Map |
スクリプトは、マップにエントリを追加して、ユーザー属性を返します。後述のエントリテーブルを参照してください。 |
result マップには、スクリプトによって次のエントリが入力される必要があります。
キー |
値の型 |
値の説明 |
---|---|---|
text |
String |
ユーザー属性に解析されるテキストを含みます。1 つ以上の画面または応答の内容であることもあります。 あとで、このマップの attrParse エントリで指定された AttrParse オブジェクトを使用して、この文字列からユーザー属性が抽出されます。一致するユーザーが見つからない場合は、このエントリをマップに入れないでください。 このフィールドをマップに追加しないでください。代わりに attrMap マップを入力します。 |
attrParse |
String |
このマップの text エントリの文字列からユーザー属性を解析するためにアダプタが使用する AttrParse オブジェクトの名前。このエントリは、常に text エントリと一緒に設定します。 |
attrMap |
java.util.Map |
スクリプトがユーザー属性を直接取得できる場合は、ユーザー属性のマップでこのエントリを設定できます。この attrMap エントリは、このマップの text エントリが存在しない場合にのみ適用されます。 |
エラー処理
一致するユーザーが見つからない場合、result マップは空のままにするようにしてください。
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、取得の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、取得の失敗とみなされます。
listAll アクションは、ホストアプリケーションで見つかったユーザー ID のリストを取得します。
listAll アクションが定義されていない場合は、このリソースインスタンスの FormUtil.listResourceObjects メソッドをフォームから呼び出すことはできません。
listAll アクションと getAccountIterator アクションのどちらも定義されていない場合、アカウントの反復処理 (調整、リソースから読み込み) はサポートされません。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス |
action |
java.lang.String |
「listAll」という文字列。 |
resultList |
java.util.List |
スクリプトがこのリストにエントリを追加します。スクリプトがリストに追加する各項目は、ホストアカウント ID に対応する文字列です。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、取得の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、取得の失敗とみなされます。
login アクションは、カスタムホストアプリケーションのユーザーを管理するために必要なホストと、認証されたセッションのネゴシエーションを行います。このアクションは、必ず定義してください。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
action |
java.lang.String |
「login」という文字列。 |
ユーザー |
java.lang.String |
ホストアプリケーション管理ユーザーのユーザー名。 |
password |
com.waveset.util.EncryptedData |
ホストアプリケーション管理ユーザーのパスワードを格納する暗号化されたオブジェクト。プレーンテキストに変換するには、decryptToString() を使用します。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、ログインの失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、ログインの失敗とみなされます。
logoff アクションは、ホストからの切断を実行します。これは、接続が不要になった場合に呼び出されます。このアクションは、必ず定義してください。
コンテキスト
actionContext マップには次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
action |
java.lang.String |
「logoff」という文字列。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、ログオフの失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、ログオフの失敗とみなされます。
update アクションは、ホストアプリケーションのユーザーを更新します。update アクションが定義されていない場合は、ホストアプリケーションのユーザーを更新できません。
コンテキスト
actionContext マップには、次のエントリが含まれます。
キー |
値の型 |
値の説明 |
---|---|---|
hostAccess |
com.waveset.adapter.HostAccess |
メインフレームへの 3270 エミュレーションアクセスを提供します。 |
adapter |
com.waveset.object.ScriptedHostResourceAdapter |
アダプタインスタンス |
action |
java.lang.String |
「update」という文字列。 |
id |
java.lang.String |
変更するユーザーのアカウント ID。 |
password |
java.lang.String |
存在する場合、これはユーザーの新しい復号化されたパスワードです。 |
attributes |
java.lang.Map |
既存のユーザーで更新する属性のマップ。キーは、設定する属性を識別します。 値は、その属性に設定する復号化された値です。 |
errors |
java.util.List |
これは、最初は空のリストです。処理中にエラーが発生した場合にスクリプトがこのリストに java.lang.String オブジェクトを追加するように設定する必要があります。 |
trace |
com.waveset.adapter.Trace |
実行のトレースに使用されるオブジェクト。スクリプトは、このクラスのメソッドを使用することで、顧客の環境でデバッグ可能なものとなります。 |
エラー処理
アプリケーション固有のエラーが画面または応答に発生した場合、スクリプトが errors キーに適切な文字列を追加します。エラーが発生したと判断するために、さまざまな既知のエラー文字列の検索が必要になることがあります。
errors リストに項目が存在する場合は、更新の失敗とみなされます。さらに、スクリプト内から例外がスローされた場合は、更新の失敗とみなされます。
Identity Manager は TN3270 接続を使用してリソースと通信します。
RACF リソースへの SSL 接続の設定については、第 53 章メインフレーム接続を参照してください。
ここでは、サポートされる接続と特権の要件について説明します。
Identity Manager は、TN3270 を使用してスクリプトホストアダプタと通信します。
ホストアプリケーションに接続する Identity Manager 管理者には、ホストアプリケーション内でユーザーの作成と管理を行うための十分な特権が与えられている必要があります。
次の表に、このアダプタのプロビジョニング機能の概要を示します。
機能 |
サポート状況 |
---|---|
アカウントの有効化/無効化 |
あり |
アカウントの名前の変更 |
なし |
アカウントの作成 |
あり |
アカウントの更新 |
あり |
アカウントの削除 |
あり |
パススルー認証 |
なし |
前アクションと後アクション |
あり |
データ読み込みメソッド |
|
スクリプトホストアダプタには、デフォルトのアカウント属性はありません。これは、管理対象のホストアプリケーションによってアカウント属性が異なるためです。
サポート対象外
なし
Identity Manager のデバッグページを使用して、次のクラスでトレースオプションを設定します。
com.waveset.adapter.ScriptedHostResourceAdapter
com.waveset.adapter.HostAccess
HostAccess クラスのトラブルシューティングの詳細については、TopSecret アダプタの「トラブルシューティング」を参照してください。
Javascript へのコンテキストには、渡される com.waveset.adapter.Trace オブジェクトが常に存在します。com.waveset.adapter.ScriptedHostResourceAdapter でトレースを有効にすると、Javascript でのトレースが有効になります。
また、一時的なトレースを標準出力に表示する場合は、Javascript で Java System.out.println() メソッドを呼び出すことができます。たとえば、次のようにします。
java.lang.System.out.println(“Hello World”);