/CMPの設定/MySQLデータソースを設定する/Application Server 7との連携/
(1)まず、Persistens Managerというものを作っておくことが必要だ。これは下の節で詳しく説明した、今使っているサーバインスタンスのノードである。

このうちjdo/MySQLPMのほうは残念ながら、MySQLでCMPアプリケーションがうまく動かなかったので使っていない。
jdo/NonipbPMは、「Unregistered Persistence Managers」ノードを右クリックして「新規作成」を選ぶことで設定できる。

Use Exsisting JDBC Resourceを選ぶ(デフォルトでは選ばれている)。
リストに、これまで必死こいて作ったいくつかのデータソースの名前が出る。データソースの作り方はちょうど下の節に紹介してある。
ここでは、PointBaseに新規作成したnonikoユーザのnonikoデータベースに接続するデータソースを選ぶ。
ちなみに、PointBaseにマイユーザ名やまっさらなマイデータベースを新規作成する方法は別ページに示してある。
また、Sun ONE StudioでPointBaseデータベースへの接続を作成する方法も別ページ。
(2)データベーススキーマオブジェクトというものを作る
今回のアプリケーション用にpbpmpfolderというフォルダをマウントした。そこを右クリックして「New」->「All Templates」を選ぶ。そこから「Database」ノード、さらに「Detabase Schema」をつつく・・・これはCE版にはない選択だ。

その作成ウィザードが始まる。まず、接続するデータソースを選ぶ。

このデータベースにあるテーブルから、アプリケーションに使いたいものを選ぶ。つまり、先にアプリケーション用のテーブルは作っておく必要があるということだ。
ここでは「DSTEST」という、以前テスト用に作ったデータベースを使うことにした。

これで完成。ファイルシステムにノードができている。

(3)EJBモジュールを作る
作り方は長くなるので別ページ。
(4)作ったモジュールをテストしてみよう
作ったモジュールはPBCMP.ejbddというノードで示されている。
![]()
これを右クリックして「Create New EJB Test Application」を選ぶ。すると自動でいろんなノードがわんさかできるが、重要なのはテストアプリケーションのモジュールだ。
テストアプリケーション自体のノードにも見えるが、これはただのショートカットだ。

実体はその近くにあるはず。
![]()
まず、この「PBCMP」ノードを右クリックしてプロパティーを出す。「Sun ONE AS」のタブをつついて見ると・・・・

新規作成のときにせっかく設定したのに、何も反映されていない!非常に悲しいが、これはどうやら「テストアプリケーション」だかららしい。しぶしぶマッピングし直す。それにはMapped
Fieldsの「0 container managed....」と書いてある欄をクリックするとウィザードが立ち上がる。
スキーマオブジェクトを探し出して、テーブル名を指定して、フィールド名を・・・というヤツなので様子は割愛する。ただひとつ、「フィールド名の指定」はウィザード中で「Automap」ボタン一つでできる。だったら最初からオートマップしてくれヨと思うのはわたしだけだろうか。

これでマッピングは完了だ。最後に「PBCMP_EJBModule.ejbmodule」自体(四角いヤツ)を右クリックしてプロパティーを出す。
「CMP Resource」のところが「Unconfigured」になっている。ここをクリックして編集画面を出す。Jndi名をさっき作った
jdo/NonipbPM
にしてユーザ名とパスワードを入れておく。Jndi名は登録したヤツを参照できるようにしてほしいところだ。というのもわたしはここスペルミスなどを2回もやってそのたびに実行エラーが出て悲しい思いをした。
ここまでやったらテストアプリケーションの三角野郎のケツみたいなアイコンを右クリックして「Execute」だッ。
その様子はまた別ページに示す。
2003年07月15日
まず下準備として、MySQL Connector/Jドライバのjarファイル。名前が長いのでmysql.jarという名前に変えてしまって、これを次の2箇所にコピーした。
/var/opt/SUNWappserver7/domains/noniko/NoniServer/lib
つまり作成したヒラサーバドメインのヒラサーバインスタンスだ。
/opt/studio5_se/lib/ext
次に、Studio5の「Exploer」の「Runtime」タブをつついて中身を出す。「DataBase」の「Drivers」ノードを開くと、使えるらしいドライバの一覧が現れる。

その中にMySQL(.glt.mm.mysqlDriver)・・・だったかな。とにかく古いドライバ名の添えられたアイコンがある。
![]()
すみません。名前変えちゃった後のものです。新しいドライバを追加する方法をとってもいいんだけど、せっかくあるんだから再利用しよう。こいつを右クリックしてプロパティーを出す。

各プロパティー値はクリックすると編集可能状態になる。URL(実はこれで日本語がちゃんと行くかどうかはまだ確かめていない)とDriver名を書き換える。
この設定が正しいかどうか確かめるには、アイコンをまた右クリックして「Test Driver」を選ぶ。
すると、設定項目の確認及びユーザ名とパスワードの入力を求めるウィンドウが開くので、適当に入力してやって「OK」を出す。
するとこんどは「テストが不完全です。メタデータをサポートしてないのでどーのこーの。詳しくはOutputWindowを見れ」というようなウィンドウになる。aokoそこで下の出力ウィンドウを見ると、確かにテスト結果らしい。

こうしてドライバの設定が正しいことを確認したら、次はDriversノードを閉じて見やすくする(しなくてもいいけど)。
で、「Databases」ノードをまた右クリックしてメニューを出し「Add Connection」を選ぶ。設定ウィンドウの「Name」のリストを開けてよーく見ると、さっき設定した「MySQL」が見えるので、こいつを選んでやると、さっき設定した条件が全部読み込まれてくれる。

ユーザ名やパスワードを入力して「OK」を押すと、ちゃんとつながってテーブルなどが見えるはずだ。

よし、ではいよいよサーバ設定にこれらの作業を活かすべし。同じRunTimeペイン内の「サーバーインスタンス」のノードを開けてみると実はこんな設定項目が並んでいる。

まず、接続プールを作成する。
「Unresisterd JDBC Connection Pools」というアイコンを右クリックして、「Add New...」と新規作成コマンドを選ぶ。
ウィザードが立ち上がる。

Connection Pool Nameは適当につけておく。ここではMySQLPoolとした(そりゃそーだ)。
そして便利なのは、「Extract from Existing Connection」を選択して、リストから、さっき接続できることを確かめた設定を選ぶことができるということだッ!これで、いざアプリケーションを作って動かしてエラーが出たとき、それは接続設定の問題ではないと断言、とは言わないまでもかなりその可能性は小さくなる!さて、こいつを選ぶと、次の画面で聞いてくるのがDataSourceクラスの名前だ。

ここでは古いバージョンに基づいたドライバの設定を編集して使ったので、DataSource Classnameにはデフォルトの古いバージョンのクラスが記入されてある。これを
com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource
に書き直す。他はオッケーで完了すると、「この設定をRegisterしますか」とウィンドウで聞いてくるのでRegisterすると答える。

名前がMySQLPool2になっているのは、スクリーンショットをとるためにもう一度登録のマネゴトをしたからで、同じ名前だと設定時にすでにダメ出しされるからである。もちろんホントはここはさっき設定した名前MySQLPoolになっているはずだ。Registerを押すと登録される。ちょっと時間かかるかも。
次にDataSourceの設定である。やはりサーバインスタンスのノードの中から「Unregistered JDBC Data Source」を選んで右クリックして、「Add New...」を選ぶ。今度のウィザードは簡単だ。

既存のっていうか今作ったConnection Poolを使うのだ。リストにMySQLPoolが出てくるのでそれを選ぶ。そしてここで接続のJNDI名を設定できる。ここではjdbc/MySQLというJNDI名を設定したところである。
同様、「Register」ウィンドウが出てくるので、それを行う。
ここで忘れては行けないというかわたしが何度か忘れて 泣きを見たのは、このあと必ず
ということだ。それはサーバインスタンスノードの右クリックで、Statusなどと同じところに現れる項目だ。そうしてからサーバインスタンスを再起動する。
これでMySQLのデータソースが作れたぜ!よかったよかった!
2003年06月23日
「Explorer」の「Runtime」タブをつつき、「Server Registry」->「Installed Servers」ノードまでくる。Sun ONE Application Server 7はちゃんと検知されていて、localhost:4848すなわちデフォルトのサーバインスタンスserver1までは見ることができる。
「Sun ONE Application Server 7」のノードを右クリックしてメニューを出し、「Add Admin Server」を選ぶ。
「Add Admin Server」というダイアログボックスが出てくるので、こうした。
Admin Server Hostにlocalhost
Admin Server Portに11111
User Nameにnoniko
User Passwordにさっき設定したパスワード
Domainにnoniko
これで「OK」とやるといきなりエラーメッセージが出る。
Could not connect to Admin Server. If Admin Server is local it will
be started.
だが、かのpdfスタートガイドにも「このエラーメッセージは無視せよ」と書いてある。そこで無視するとサーバーのノードのところに今設定したnonikoサーバが登録された。

この新しくできたlocalhost:11111のサーバをまずはスタートさせなければならない。右クリックする。「Start」という項目があるので、それを選ぶ。
この11111というのは管理ツールからアクセスしてデプロイしたり設定したりという管理サーバのポートである。起動した状態で再び右クリックするとメニューに「Create
a Server Instance」という項目ができている。これを選ぶとServer Instanceの設定ダイアログボックスが出てくる。
Server Instance Name: NoniServer(適当だ)
Server Instance Port: 11119(これも適当なデカ番だ)
と設定すると、「localhost:11111」の下にさらにサーバインスタンス、ポート11119のノードができている。もしできていなかったら、同様「localhost:11111」のノードを右クリックして「Refresh List」を選ぶと、
![]()
と、サーバインスタンスが現れる。
これを右クリックしてメニューを出し、「status」を選んで、startしたりstopしたりするのが、言ってみればTomcatをスタートしたりストップしたりするのと同様のことになるらしい。
右クリックのメニューから「Set As Default」を選ぶことにより、以後ExecuteとかDeployとかするたびに、このサーバーが機能することになる。
これらヒラのために下げ渡されたサーバスペースは、root権限で
asadmin start-appserv
の、コマンドをかまさなくても、このエクスプローラ上からヒラ権限で自由に起動も終了もできることがわかった。
以降はStudio5を立ち上げるたびに、11111サーバをまず立ち上げてから、11119サーバインスタンスを立ち上げる必要がある。結構時間かかるぞ!
2003年06月23日