仕事柄、いろんなプログラムに携わることが多いんです。
JavaからVB.NETからC#、そして、C++にCなどなど・・・
今後は、WEB周りよりも、ハードよりのプログラムが増えそうで、つい最近は、μITRONを扱う場面も出てきてます。

さて、前置きはコレぐらいにして、比重がハードよりになってきた今日この頃、長年慣れ親しんだJavaでも
ハードを扱うことはできまいかと考えてました。

Javaでハードを??って思う方も多いでしょうが、将来的に流行らないってわけでもなさそうです。
(流行るとはいってませんよ)
ちらほら各所でJavaと組込みのお話をききますが、今後はどうなるかはわかりません。

で、Java(J2ME)を使っていろいろ勉強したいな~と思って1年ほど前から「SUNSPOT」なるものに眼をつけていたんです。
でも、これ、米国でしか販売されていないブツだったんですが、1月14日ぐらいから日本にも販売されるようになりました。ヘ(゚∀゚*)ノ

SUNSPOTはJ2MEで制御できるセンサーを搭載しているキットなんですけどね。
特徴はこんなかんじ。
 ・温度センサー、加速度センサー、光センサーなどをもっている。
 ・SquawkというVMが動いてる。
 ・直接hard上で動作 (RTOS等不要)
 ・デバドラがJavaで書かれている
 ・複数アプリを動作させることができる
しかも、開発はNetBeansで開発できるそうなんですよ。(個人的にはEclipseのほうが多く使っているんですが)

なので早速購入手続きに入りました。
いつくるのかな~~?

今後Blogでは、この機材をいじって遊んだ報告になると思います。





Tomcat5.5で、JTAを実現しようと思い、JOTMを利用することにしました。
JOTMは負荷をかけると切断された接続を返すらしい。(参照先 )しかし、今回はヴァージョンが違うということでそれは後ほど確認してみます。

1.用意するもの
 ・jotm-2.0.10.tgz(DL先
 ・carol-2.0.5.tgz(DL先 ) (JOTMの中のow_carol.jarが古いらしいので2.0.5をGET。
 ・JDBCドライバ

2.インストール(jarのコピー)
 ・以下のファイルをコンテキストフォルダ/WEB-INF/classes/libにコピー(commonでもいいですがポータビリティを高めたくて)
  • jotm.jar
  • otm_jrmp_stubs.jar
  • ow_carol.jar(これは、carol-2.0.5.tgzからコピー)
  • jta-spec1_0_1.jar
  • jts1_0.jar
  • objectweb-datasource.jar
  • xapool.jar
  • howl.jar
  • commons-cli-1.0.jar
  • connector-1_5.jar
  • JDBCドライバ
3.carol.propertiesをコンテキスト/WEB-INF/classesに配置(Eclipseならいわゆるsrc)
carol.rmi.activated = rmi
carol.jndi.start = false
carol.ns.start = false
 
4.META-INF/context.xmlを作成し以下の内容を記述
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Context docBase="TestJOTM" path="/TestJOTM" reloadable="true"
source="org.eclipse.jst.j2ee.server:TestJOTM">
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource"
factory="org.objectweb.jndi.DataSourceFactory"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/TestDB" username="postgres"
password="postgres" maxActive="20" maxIdle="10" maxWait="-1" />

<Resource auth="Container" name="UserTransaction"
type="javax.transaction.UserTransaction"
factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60" />
</Context>

5.web.xmlの編集
<resource-ref>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

6.テストプログラム

UserTransaction ut = null;
Connection conn = null;
PreparedStatement pst = null;
Context context=null;
DataSource ds=null;

context = new InitialContext();
ut = (UserTransaction) context.lookup("java:comp/env/UserTransaction");
ut.begin();
ds = (DataSource) context.lookup("java:comp/env/jdbc/postgres");
conn = ds.getConnection();
pst = conn.prepareStatement("SQL文");
pst.executeUpdate();
......
ut.commit();
//catch句で
ut.rollback();

使用感云々は雑誌、IT記事に任せるとして、問題点を忘れないうちに。


1.「接続中」でIE7が固まる(極端にレスポンスが悪い) >>> IE7だけで、CPU使用率が100%に近い状態になってる。


原因

色々あるかもしれないが、私の場合、アドオン関連に問題がありました。

 

対応方法


方法1

IE6で利用していたアドオンはアンインストールしておく。(してもいいものにかぎる)

この方法は、IE6の段階で実施しないとダメ。

IE7にしてからではアンインストールできないくさい。

プログラムの追加と削除から削除できました。



方法2

悪さをしているアドオンを無効にしてIE7を立ち上げる。

インターネットプロパティからアドオン管理でアドオン1つ1つを

「無効・有効」にすることができます。

地道ですが、1つ1つ確認して、悪さをしているアドオン確かめて、無効にしましょう。

わたしは、Yahooツールバーが悪さをしていました。

悪さしているアドオンがわかれば、あとはそれを削除しましょう。

削除はプログラムの追加削除やアドンオン管理等から行えます。

     

※インターネットプロパティは「コントロールパネル>>ネットワークとインターネット接続にあります」


追記

私はNorton Internet Security2006 と ウィルスバスター2007の両方の環境で動作確認しました。