Hatena::ブログ(Diary)

ねこら対策研究要塞日誌@はてな このページをアンテナに追加 RSSフィード

2015-01-25

[]ActiveMQへのJMX接続 ActiveMQへのJMX接続 - ねこら対策研究要塞日誌@はてな を含むブックマーク

JMXで接続してキュー内のメッセージを全削除しようとpurgeを呼び出した時点でエラーが。名前とかタイプはjconsoleで確認したんだがなぁ。

javax.management.InstanceNotFoundException: org.apache.activemq:Type=Broker,BrokerName=localhost,destinationType=Queue,destinationName=TweetQueue
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(Unknown Source)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getClassLoaderFor(Unknown Source)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.getClassLoaderFor(Unknown Source)
	at javax.management.remote.rmi.RMIConnectionImpl$5.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.management.remote.rmi.RMIConnectionImpl.getClassLoaderFor(Unknown Source)
	at javax.management.remote.rmi.RMIConnectionImpl.invoke(Unknown Source)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at sun.rmi.transport.Transport$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.Transport.serviceCall(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$240(Unknown Source)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/33549129.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
	at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
	at sun.rmi.server.UnicastRef.invoke(Unknown Source)
	at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
	at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown Source)
	at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(Unknown Source)
	at javax.management.MBeanServerInvocationHandler.invoke(Unknown Source)
	at com.sun.proxy.$Proxy1.purge(Unknown Source)
	at nekora.jms.JMSQueueClear.cleanUp(JMSQueueClear.java:67)
	at nekora.jms.JMSQueueClear.main(JMSQueueClear.java:46)

Apache 5.8 changed the name of JMX MBeans which means Active Mq won't find the MBeans it is looking for (hence instance not found exception). I tried discovering queues with Active MQ 5.1 and it worked.

There is nothing you can do to fix it. The author of Hermes JMS would have to update the code to support Active MQ 5.8+

http://stackoverflow.com/questions/22654832/instancenotfoundexception-when-trying-to-discover-queues-in-hermes-jms

の事例が似ているな。ちなみに5.10.1を使っている。

http://stackoverflow.com/questions/15837853/accessing-apache-activemq-via-jmx-throws-exception

オブジェクト名が変わったと

http://activemq.apache.org/activemq-580-release.html

Typeではなくてtypeとかこまごま。

→結局、ObjectNameのコンストラクタに渡す文字列が不正確だったらしい。jconsoleで欲しいのを表示してObjectNameの値をコピペ(欄をダブルクリックで選択可能になる)したら実行時に上記エラーはでなくなった。

要は即値で書くと

    ObjectName queue_name = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=TweetQueue");

のようになる。

ここの文字列の指定は大文字小文字合わせて一字一句大変厳密なモノのようだ。typeやbrokerName等の要素の順番も同じにすべきだろう。

→接続はできてpurgeも呼べたが、実際にはパージされない。jconsoleでやった時と同じだ。

2015-01-22

[]ActiveMQ 中のデータを全クリアする荒業 ActiveMQ 中のデータを全クリアする荒業 - ねこら対策研究要塞日誌@はてな を含むブックマーク

\activemq-data\localhost\KahaDB配下のファイルを、データが空だった時のファイルに置換する。実は消しても自動生成される節もある。

これで、この4日間エライ事になってた https://twitter.com/nekora2199 を止められた…。

今後はこういうバグに備えて、ActiveMQのキューを毎朝早朝に全部空にするバッチを仕込んでおこう。

ちなみにプロセスを落とさずに消す正しい方法は、

to use JMX to browse the queues and call the purge() method on the QueueViewMBean.

You could also delete the queue via removeQueue(String) or removeTopic(String) methods on the BrokerViewMBean

http://activemq.apache.org/how-do-i-purge-a-queue.html

だそうな。

jconsoleから繋いで適当にそれっぽいメソッドを実行。

…消えねぇ!

やっぱ適当じゃだめか。しかしpurgeって上のリンクにもあるしな。

何か、JMXからの指示有効化みたいな指定が必要なのか。

あと、使ってるActiveMQのバージョンが5.5.1なのが関連する可能性はある。

jconsoleじゃなくてJavaプログラム中からJMXに接続してる例があった

https://gist.github.com/983841/6c0b668e80f13264d63e42eb22dd92f13bf30011

http://bendoerr.me/posts/2012-10-14-activemq-jmx-purge.html

2008-12-28

[]WebLogicのチューニング情報取得スクリプト WebLogicのチューニング情報取得スクリプト - ねこら対策研究要塞日誌@はてな を含むブックマーク

取るべきものは過去事例からあったんで、WLSTのスクリプト作った。cdとlsしか使わないという…まぁ結果をgrepすればOK。この辺、JavaJMXアクセスより大分楽でいいな。System.out.println("WaitingForConnectionCurrentCount"+foo);とか項目名を延々書くの大変だし。しかもスペルミスする可能性まである。AdminServerのcgDataSourceだからこの辺は実際には変えねばなるまい。いつも思うんだけど、何故、PythonはIFやFORとかブロック開始文の後に":"が必須なのだろう?Tabで見分けてるんだから要らないと思うんだけど。

これに項目毎に見方と方針と実際に弄る設定をエクセルで書いておけばAPサーバ側は大体大丈夫と思われる。正月明けにでも会社のマシンで実際にやってみよう。これがAPサーバじゃなくて自動車だと実際に物理的作業がある故、チューニングに関して知ってると出来るとの間には技とか術が入ってよろしくメカドックな訳だが。知ってるだけでOKなのでソフトは有りがたい。ただWebLogicのワークマネージャが良くわからん。AP毎に処理優先度をつけるだけでスレッド数自体はやっぱり自動

後はJava側かー。HeapSizeCurrentとHeapFreeCurrentとCGログ位?

その後OS側はこの記事が便利

とおりすがりとおりすがり 2008/12/29 00:33 http://blog.goo.ne.jp/hatena-docseri
↑g-zoneに投稿されてましたが、ねこらさんと何か関係が?

nekoranekora 2008/12/29 01:11 全くの無関係でございます。

2008-12-26

[]APサーバチューニング APサーバチューニング - ねこら対策研究要塞日誌@はてな を含むブックマーク

多分2月ごろからAPサーバ(おそらくWebLogicの最新版 10.3?)のチューニング作業が入るから、プロのフリをするために予習しておかねばなるまい。たしか9.0に成った時に変わってるんだよね。http://edocs.beasys.co.jp/e-docs/wls/docs103/perform/topten.html を毎日順番に読んでくか。…と言うが早いかざっとみたけど9以降はスレッド数は自動調整になってるっぽいからJDBC接続プールサイズ位しか無い?

適切なプール サイズを決定する最良の方法は、プールの現在のサイズ、縮小数、拡大数、および待機数をモニタすることです。

http://edocs.beasys.co.jp/e-docs/wls/docs103/perform/topten.html#wp1132662

WebLogic Server ドメインのモニタ

以下の節では、WebLogic Server ドメインのモニタ方法を説明します。

Administration Console での WebLogic Server のモニタ

JMX での WebLogic Server のモニタ

WLST での WebLogic Server のモニタ

WebLogic Server をモニタするためのサード パーティ ツール

http://edocs.beasys.co.jp/e-docs/wls/docs103/perform/WLSTuning.html#wp1150817

やっぱ常識的に考えるとWLSTだろうなぁ。つかweblogic.Adiminって無くなったんだっけ?

実行時情報へのアクセス : 主な手順

 管理サーバは、ドメインに含まれる任意のサーバ上の任意の MBean へのアクセスを提供する、ドメインの実行時階層をホストします。管理サーバがドメインに対して実行されていない場合、WLST では個々の管理対象サーバに接続して実行時データを取得できます。

http://edocs.beasys.co.jp/e-docs/wls/docs103/config_scripting/monitoring.html#wp1027005

で、「プールの現在のサイズ、縮小数、拡大数、および待機数」はJMXの何処かいな?

WebLogic Server MBean は、サービスやリソースの実行時状態に関する詳細な統計を提供します。表 7-2 の統計は、WebLogic Server のパフォーマンスの概要を提供するものです。これらの統計の変化をリスンするには、リスナを作成して、属性が含まれる MBean にリスナを直接登録します。または、モニタ MBean をコンフィグレーションして、重要だと判断した統計のみを定期的にポーリングして報告させることもできます。「通知リスナとフィルタを登録する」および「モニタとリスナを登録する」を参照してください。

http://edocs.beasys.co.jp/e-docs/wls/docs103/jmx/notifications.html#wp1139846

のJDBCあたり?

CurrCapacityCurrCapacityHighCountWaitingForConnectionCurrentCountがそれっぽい感じか。

ActiveConnectionsAverageCountも「Average number of active connections in this instance of the data source.Active connections are connections in use by an application.」と言ってるな。

本によると負荷かけてWaitingForConnectionCurrentCountWaitingForConnectionHighCountが0なら接続プール数は足りてると。

2008-11-27

[]GlassFish v3 プレリュード GlassFish v3 プレリュード - ねこら対策研究要塞日誌@はてな を含むブックマーク

NetBeansのオマケに付いて来たのでちょっと起動だけしてみる。

日頃WebLogicばっかだと起動の早さに驚く。つかTomcat,JBoss,これ、と並べてみるとWebLogicが飛びぬけて遅いんだよね(起動が)。

管理コンソールは普通のHTTP/S(8080/8181)と別の専用ポート(4848)に接続。画面はWebLogicの8.1の頃な感じに左ツリーが動的。JBossの、素人が作ったJMXのサンプルアプリみたいなのと違って割と普通に見易い。

IIOPポートは3820,3700,3920 管理コンソールWEBアプリの「アプリケーションサーバ」で表示される。

AJPポートは不明。8009あたりか。そもそもあるのか不明。

多分domainディレクトリの下にドメイン毎に設定やログ等一式持つのだろう。

JDBC接続プールとデータソースは1:1というか同一画面での設定になっている別々。デフォルトでダービーへの設定があった。

JMSは見当たらない。

常用するか?というと、会社で使わないのであんまり使わなそう。そいえばEnhydraとかJRunって今何処。

shinshin 2008/11/30 16:53 プールとデータソースは1:1でもないですし、別々の画面での設定ですよね?JMS等はフルセットのほうにはいるはずです。JavaEEフルセットが欲しければV2のほうを起動してみてください。管理画面のツリーが大量に増えていますよ。

ポイントはこういった普通のフルセットのAP鯖が無料だってことですね。あとこの管理画面名hJSFで作られていますからJSFでどういったことが出来るかを調べるにはちょうどいいかも。

nekoranekora 2008/12/02 00:10 おお、本当だ。何故か勘違いしてました。どうもありがとうございます。
最近はマルチCPUやマルチコアが普通になってきているのでCPU毎のライセンスの有料APサーバだと何気なくライセンス料が莫大になるので無料なのは良いですね。

2008-10-18

[]JBossにjconsole接続 JBossにjconsole接続 - ねこら対策研究要塞日誌@はてな を含むブックマーク

run.batでデフォルトサーバを起動して接続してみると

2008-10-18 22:48:06,468 ERROR [STDERR] javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.checkMBeanServerBuilder(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.getNewMBeanServerBuilder(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.newMBeanServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.createMBeanServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.createMBeanServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.management.ManagementFactory.createPlatformMBeanServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.lang.management.ManagementFactory.getPlatformMBeanServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.management.jmxremote.ConnectorBootstrap.startLocalConnectorServer(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.management.Agent.startAgent(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.management.Agent.agentmain(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,484 ERROR [STDERR] at java.net.URLClassLoader$1.run(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.net.URLClassLoader.findClass(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.lang.ClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.lang.ClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at javax.management.MBeanServerFactory.loadBuilderClass(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] ... 16 more

2008-10-18 22:48:06,484 ERROR [STDERR] エージェントが例外をスローしました。 : javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,484 ERROR [STDERR] java.lang.reflect.InvocationTargetException

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at java.lang.reflect.Method.invoke(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(Unknown Source)

2008-10-18 22:48:06,484 ERROR [STDERR] at sun.instrument.InstrumentationImpl.loadClassAndCallAgentmain(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] Caused by: java.lang.RuntimeException: javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.management.Agent.error(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.management.Agent.startAgent(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.management.Agent.agentmain(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] ... 6 more

2008-10-18 22:48:06,500 ERROR [STDERR] Caused by: javax.management.JMRuntimeException: Failed to load MBeanServerBuilder class org.jboss.mx.server.MBeanServerBuilderImpl: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.checkMBeanServerBuilder(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.getNewMBeanServerBuilder(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.newMBeanServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.createMBeanServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.createMBeanServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.management.ManagementFactory.createPlatformMBeanServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at java.lang.management.ManagementFactory.getPlatformMBeanServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.management.jmxremote.ConnectorBootstrap.startLocalConnectorServer(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] ... 8 more

2008-10-18 22:48:06,500 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: org.jboss.mx.server.MBeanServerBuilderImpl

2008-10-18 22:48:06,500 ERROR [STDERR] at java.net.URLClassLoader$1.run(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at java.security.AccessController.doPrivileged(Native Method)

2008-10-18 22:48:06,500 ERROR [STDERR] at java.net.URLClassLoader.findClass(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at java.lang.ClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at java.lang.ClassLoader.loadClass(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] at javax.management.MBeanServerFactory.loadBuilderClass(Unknown Source)

2008-10-18 22:48:06,500 ERROR [STDERR] ... 16 more

Class not foundとか言ってるので多分何かにクラスパスを通す必要があるのではなかろうか、と思う。でも/jmx-console/は(当然ながら)表示出来てるんだよなー。

起動時にコマンドオプションでシステムプロパティを幾つか指定する必要があるとのこと。

→上手く行った。

bin/run.bat のしかるべき所に

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl -Djboss.platform.mbeanserver

を追加する。/localhost:8080/jmx-console/ より jconsoleの方がツリーで見える分見やすいような。

SEITHXSEITHX 2008/10/19 04:50 Web環境が整ったら、絵コンテエディタ試させて頂きます。Pen3_1G 512M XPのスペックだけど。

nekoranekora 2008/10/19 13:28 どうも。不具合あったら教えてください。
メモリ512Mのパソコンの場合、sbedit.bat中の -Xmx512m をテキストエディタで -Xmx256m 位に変更しないと多分起動しないのでご注意です。

2008-10-17

[]JBossでJMS Send/Receive JBossでJMS Send/Receive - ねこら対策研究要塞日誌@はてな を含むブックマーク

が動いた。QueueにSendしてReceiveする一番単純なやつ。

もしくは、「JBOSS_HOME/server/default/deploy/jms」直下に自分で「なんちゃら-service.xml」というファイルを作ってもよい。

http://www.ne.jp/asahi/hishidama/home/tech/java/jboss/as.html

で作成する。キューが出来たのはJBossのコンソール画面(8080/jmx-console)の

jboss.mq.destination

name=A,service=Queue

name=B,service=Queue

name=C,service=Queue

name=D,service=Queue

name=DLQ,service=Queue

name=ex,service=Queue

name=securedTopic,service=Topic

name=testDurableTopic,service=Topic

name=testQueue,service=Queue

name=testTopic,service=Topic

name=weblogic.examples.jms.exampleQueue,service=Queue ←こっそりこれが増えてる

で確認できる。なんでJBossなのにweblogic.examples.jms.exampleQueueなんて名前をつけたのか?は秘密だ。いや単にWebLogicのサンプルAPを流用したかったからだけど。JBoss用JMSクライアントに関しては http://neverbird.sourceforge.jp/manual/fancy/ch08s07.html にやり方が書いてある。JNDI用InitialContext設定周りとファクトリ名とか変えれば動いた。これはハードコーディングだけど jndi.properties に外出しできるらしい。あと、JBossの場合、JNDI取得用にクライアント-JBoss間はHTTPとは別ポート(1099)を使うので注意。HTTPでもRMIでも何でもかんでも7001なWebLogicとは違う。

それにしてもJBossの管理コンソール画面は簡素というか何というか…ショボいな。まるでJMXクライアントのサンプルみたいだ。WebLogicはさすが1CPU 200万円(Oracleに買収されてから半額になったけど)するだけある。9.x〜になって碌でもなくなったとか言って悪かった。JBossに比べれば神のような出来。でも8.1の、左ツリーペインにデプロイしたリソースが展開される奴が便利だったよ。

しかし家でこんなことやってるとは私も仕事熱心だな。いやしかし、こうして事前にこっそりショボいサンプルを動かして、関連する設定ファイルや実際の動作イメージをつかんでおくと、何かと勘が働いてトラブルが避けられたりトラブル時にすぐ判ったりするのだ。

そうそう、まだMDBやってないや。あれ?WLSのサンプルはEJB 3.0だがこのJBoss 4.2.3ってEJB3.0あったけかね。1.4だからまだか。WLSにはEJB 2.0のサンプルもあるけどこれキューじゃなくてトピックなんだよな。まぁいいや。

SEITHXSEITHX 2008/10/18 02:37 300倍とは凄いな。今のトコ携帯しかないんで当該ページの確認出来ないけど(会社のPCでよ〜覗かない根性ナシ)。

nekoranekora 2008/10/18 02:45 その秘密は、元が1日0〜2、30位だったから…