Iseries ODBCドライバを使用するときに、「プログラム名」を呼び出す方法を定義する方法はありますか? Iseries Access ODBCドライバーを使用してAS400に対してコマンドを実行すると、as400の呼び出しスタック内の呼び出しプログラムはプログラム名を空白として表示します。私は誰が呼び出し元であるかを知る必要があるトリガを持っているため、1つを定義したいと思います。Iseries ODBCを使用するときに呼び出しプログラムを定義する方法は?
1
A
答えて
3
ODBC接続はQZDASOINIT
ジョブによってプロキシされます。私はトリガーを発した特定の接続(またはプログラム)を特定する方法があるとは思わない。
2
JamesAが指摘しているように、すべてのODBC要求はQZDASOINIT
ジョブを通過するので、呼び出しスタックを変更して呼び出し元を判断することはできません。
この問題を回避するために、DB2 for iには、ODBCドライバーによって自動的に設定されるクライアント特殊レジスター(必要に応じてオーバーライドできる)が組み込まれています。詳細については、http://ibmsystemsmag.blogs.com/i_can/2009/10/i-can-use-client-special-registers.html
0
i 6.1以降で公開されている可能性があります。使用例については、私ナビでこのステートメントを実行する「ファイル名を指定して実行SQLスクリプト...」:
select CURRENT CLIENT_APPLNAME, CURRENT CLIENT_PROGRAMID, CURRENT CLIENT_WRKSTNNAME from sysibm.sysdummy1
サポートは、JDBC、OLE DB、CLI、または.NETデータプロバイダを使用して、アプリケーション開発者に提供されています。特別なストアドプロシージャを呼び出すことによっても設定できます。例えばIBMDASQLを使用して
、接続文字列が含まれる場合があります:
conn.Open "Provider=IBMDASQL; Data Source=MyAS400;" & _
"Client User ID=MYWINUSRID; Client WorkStation Name=MYWINPC; " & _
"Client Program ID=somepc.exe; Application Name=Sample for Audit"
SQLリファレンスは、新たな "特殊レジスタ" を論じています。
関連する問題
- 1. RPGからiSeries上でリモートJavaプログラムを呼び出す
- 2. IA32のsys_read呼び出しのバッファを定義する方法
- 3. ODBC接続を使用したiSeries(AS400)出力
- 4. minがマクロとして定義されているときにstd :: min()を呼び出す方法は?
- 5. rootNode.childElementsを呼び出すときは未定義ですか?
- 6. 定義された関数を呼び出す方法は? (Javascript)
- 7. 同じメソッドを呼び出す2つの異なるオブジェクトを使用してクラスを定義する方法
- 8. iPhoneを使用してfacebookのプログラムでログアウトを呼び出す方法は?
- 9. Hibernateをプログラムで使用してOracleストアドプロシージャを呼び出す方法は?
- 10. C#でWSAAsyncSelect()を呼び出して使用する方法は?
- 11. ビューを呼び出すときに未定義のメソッド `model_name '
- 12. jQueryはユーザ定義関数を呼び出して呼び出します
- 13. htmlとjavascriptを使用してwebserviceを呼び出す方法
- 14. TextBoxをバインドするときにメソッドを呼び出す方法
- 15. バインダーを使用してサービスのメソッドを呼び出すときにスレッディングを使用する方法
- 16. WindowsのプログラムのDeviceIoControl呼び出しを記録する方法
- 17. ラムダ.NETでユーザ定義関数を呼び出す方法
- 18. Meteor Meteor.methods()で定義されたメソッドを呼び出す方法?
- 19. Webサービスを呼び出すときにサービスエージェントを使用する
- 20. ホームボタンをクリックしたときに呼び出す方法は?
- 21. Hive JDBCを使用してJavaプログラムからShell Scriptを呼び出す方法
- 22. Jqtouchでユーザー定義jqueryまたはajax関数呼び出しを呼び出す方法
- 23. インライン関数を呼び出すときの未定義参照
- 24. コントロールを使用できないときに呼び出す方法()
- 25. 名前を使用してメソッドを呼び出す方法は?
- 26. performSelectorOnMainThreadを使用してsetNeedsDisplayInRectを呼び出す方法は?
- 27. hibernateを使用してストアドプロシージャを呼び出す方法は?
- 28. BCMathを使用してエラー - 未定義のメソッドはPEAR_Errorに呼び出し:: int2bin()
- 29. pandas to_datetimeを使用するときにフォーマットを定義する方法は?
- 30. SimpleCursorAdapter.setViewImageを使用するときの呼び出しのライフサイクル
ジェームズの答えに追加するには、サーバー/クライアントインターフェイスがあるときはいつでも、それぞれの側面が他の知識なしで動作することを慎重に検討します。 Windows上で動作するJavaプログラムを想像してみてください。それはcom.mycompany.orderEntry.inventory.GetQuantityかもしれません。 ODBC/JDBCを使用してDB2 for iにアクセスします。 IBM iがスタックを呼び出すと、更新を開始したJavaプログラムの正確な名前はどのようにわかりますか? ODBCドライバは、イニシエータの名前をサーバーに渡しません。 –
追加の考え。どのように接続を設定したかによって、アプリケーションごとに異なる汎用ユーザーを使用すると、 'WRKACTJOB'でオプション2を使用して、ログインしているユーザーが何であるかを確認できます。 –