2009年4月19日日曜日

JCo3.0 (第1回)



しばらく経ってしまいましたがJCo3.0に関して書いていきたいと思います。


JCo2.0との違いは色々あるのですが、まず大きなところは「コネクションプーリングがJCo Runtime 任せになった」ことでしょうか。


JCo3.0のpdfドキュメントでは以下のような感じでサンプルが書かれています。


1. まずは接続情報をプロパティファイルとして作成


2. Javaのコードからは、JCoDestinationManagerクラス(staticクラス)よりdestinationを取得する。このときプロパティファイル名をキーとする



JCoDestination destination = JCoDestinationManager.getDestination("プロパティファイル名")



3. 呼び出したいファンクションをリポジトリから探す



JCoFunction function = destination.getRepository().getFunction("ファンクション名");



4. ファンクション実行



function.execute(destination);


# もちろんファンクション引数ある場合は色々setValue()しておく


ここで、コネクションプーリングは1.のところの接続情報にてプールの情報を書いておくと、自動で実行時にJCo Runtimeがよきに計らってくれます*1。簡単になりましたね。


なお、接続情報にはサーバのIPアドレス、システム番号、SID、クライアント番号以外にも、ユーザクレデンシャルが含まれます。ユーザクレデンシャルがユーザID/パスワードの場合、これらをプロパティファイルとして作るのはイヤでしょう。そんなときは以下を参考にしてみてください。https://www.sdn.sap.com/irj/scn/thread?messageID=7303957


DestinationDataproviderを自分でインプリしてcom.sap.conn.jco.ext.Environmentに登録すると良いようです。



com.sap.conn.jco.ext.Environment.registerDestinationDataProvider( provider );



次回はもう少し突っ込んだファンクション実行、もしくはThreadを意識した利用方法です。その他SAPJCoIDocライブラリについても書いていきたいと思います。




*1:逆にJCoDestinationクラスはどう接続を生成するかの情報のみ保持し、実際の接続自体の生成や保持はしない。JCo Runtimeが生成/キャッシュをする





0 件のコメント:

コメントを投稿