きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

Java

build.xmlをごりごり作りすぎてテンヤワンヤ

飽きも来てしまってそろそろ帰ろうかと思う。 svnant-1.2.1、ant-contrib-0.6を使用。 リポジトリにのってるJavaプロジェクトをチェックアウトしてきて、 Jarに固めるだけの代物なんで大したことはやってない。 マニフェストファイルにSVNから取ったRevを埋…

JapaneseImperialCalendarはクズだ。

あんまり使うことの無いものを使ってみた。 とりあえず、明治の開始日が間違ってるからダメダメだよ。 そんで持って、加減算した場合じゃないと元号を正しく扱えないっぽい。 それはどういうことかと言うと、 Locale locale = new Locale("ja", "JP", "JP");…

IBM JDKのBigDecimalはバグってるっぽい。

職場で使ってるRAD7.5.2で使ってるjava -version。 ....\IBM\SDP\jdk\bin>java.exe -version - java version "1.6.0" Java(TM) SE Runtime Environment (build pwi3260sr4-20090219_01(SR4)) IBM J9 VM (build 2.4, J2RE 1.6.0 IBM J9 2.4 Windows XP x86-32…

JPAの学習中

こないだSunの研修「Java上でXML」とか言うのを受けてきた。 JAXPネタなんだけど、JAXBを知りたかった。 JAXBはたぶんWebサービスの研修になるんじゃないかな。 今週はEJBの研修を受けている。 いまはJPAを軽く触る程度。 僕はまだOneToManyとかは把握出来て…

RAD7.5とplugin拡張ロケーション

今日はganymedeやRAD7.5と戦っていた。 eclipse3.2で使用するプラグインを 拡張ロケーションに配備するexeがあって、 RAD7.5で出来たらラッキーだなと思ってたら、 不安は的中していくつか動かなかった。 findbugsが動かないのはナシだろ。 Eclipse IDE for …

Strutsのバージョンアップでの性能問題

金曜日の夕方に呼ばれて話を聞いて、 打ち合わせ後に電話するも職場には誰もいなくて土日対応もせず、 先方はかなり忙しくレスポンスも悪く、 知り得ている情報からの解析も頓挫。 たかが1秒未満の話でもなんとかせねばならないのが、 システムエンジニアの…

IOExceptionは解析に困る。

createTempFileで、 指定したパスが見つからないIOExceptionが出たらしく、 僕もいろいろ調べたけど進展なし。 バージョン違うから参考程度だけど、 またopenjdkでcのコードを読んださ。 WinNTFileSystemのとこ。 パスが見つからないというので、 たぶんFile…

AdminServiceでWorkManagerのThreadPoolの情報を取ってみた。

うーむ、いけてない。通常、アプリケーションはJNDI名でWorkManagerをlookupすることになるんだけど、 AdminServiceでWorkManagerを取得するには、 「WebSphere:name=WorkManager.DefaultWorkManager」って感じの書き方が必要になる。 AdminService自体がIBM…

wsadminでWorkManagerのスレッドプール統計を取得

問い合わせを受けたんで、試してみた。 同じことやりたい人がいたら、 参考程度に試してみてください。 ちょっとしか使ったことがないので、 Jythonに全然慣れてないから、 Jaclで勘弁してくださいな。 IBMは確かずいぶん前にJaclを非推奨に格下げしてたはず…

SpringframeworkのOracleLobHandler

OracleのCLOBを使いたいというところがあったので、 ちょっと調べてみた。 OracleLobHandlerに、nativeJdbcExtractorをセットする。 僕らはAPサーバはWebSphereなんで、 WebSphereのコネクションラッパーから、 Oracleのコネクションを取り出すためのクラス…

続 お手上げなIOExceptionと出会った

今回のは1.5.0_12を使ってる前提です。 それに関係しそうなものをsun bug databaseから地道にピックアップ中・・・。1.5.0_14でfixされてるこの事象。(「ファイルのクローズに失敗後、クローズ操作を繰り返さない」) http://bugs.sun.com/bugdatabase/view_bug.…

お手上げなIOExceptionと出会った

わかんないことがあると悔しいです! IOException : デバイス上に十分な領域がありません IOException : ファイル番号が間違ってます こいつらの原因が分からない。 ディスクはあるらしいのに出たらしい。 英語だと確かこんなメッセージ。 not enough disk s…

オブジェクト指向について振り返る

たまに原点に戻るのは大事だ。 しょせん僕はCOBOL出身なのだから、手続き型な発想が多い。 オブジェクトの性質を無理矢理分断するにはどうしたらいいだろうか。クラス属性(静的) インスタンス属性(動的) 静的な手続き。 動的な手続き。 継承。 多態性。 継承…

性能改善できたぜ&文字化け分かったぜ

3時間の処理が、1時間になっちゃった。 vmstatに現れていた妙なスワップもなくなった。 良かったね。 お客さんもさぞや満足してくれてるだろう。 いや、ひょっとすると、いろんなところをもっと速く出来るんじゃないかと思ったかも?? 裏方で支援してるオイ…

なんで31なんやろか?

昔から疑問に思っていて未だに答えを知らない。 List#hashCode()に用いる計算式は、 なぜ31を使用する必要があるのだろう? 素数だから? 32-1だから? 話は変わって、使ったことないけど興味があるクラスが出てきた。 ProcessBuilderとか、なんかに使えそう…

テストの悩み

設計書があれば、テスターはテスト出来るはずだ。 しかし設計書がないとテストは難しい。 正解のないテストは、テストじゃない。 僕がやってるのはテストなのか、はたまた未整理な仕様の整備なのか。 「(設計書作るより)作った方が速い」と言うけれど、正解…

スレッドプログラミングしてみた

大したものではない。 親スレッド1つに対して、 子スレッド5つの構成で、 親スレッドを9つ作って動かす。 親スレッドは、自身が動かす子スレッドをjoin待ち。 各子スレッドは30MBのファイルをひたすらreadLine。 はっきり言って意味のあるコードじゃない。 …

Web Service、なんとかなりそう。

ここ数日、じっくりやれなかったのだけれど、 なんとかなりそうなとこまで来たっぽい。 単純に、僕がXMLに弱いのと、JAX-RPCだとか、JAX-WSの仕様と使用方法を熟知してなかっただけようだ。まだまだヘッポコやな。 一つだけ気になるのは、WebSphereではイケ…

見苦しいクラスパスの通り方

何回も首をかしげてしまった。 binとclassesがある。 いちおうはclassesに出力してるようだ。 .projectを見ると、./propertiesもkind=srcだ。 ./properties/log4j.xmlとか。 binフォルダでjavaコマンドを、-jar付きで動かす際に、 doctypeのところにsystemで…

setArrayを使う時の注意

昔の日記に書いたことも含めて再度まとめてみる。 J2EE環境では、コネクションラッパーではなく、実際のOracleコネクションを取り出すことが必要。 これは、OracleのArrayを作り出すのに避けては通れない。 iBATISでならTypeHandlerを実装して、一連のことを…

グローバリゼーション

Oracleのグローバリゼーション・サポートを調べてた。 JDBC開発者ガイドおよびリファレンスの他に、グローバリゼーションに関するマニュアルも必読だ。 10g以降はorai18n.jarを使う。 thin driverにはNLS_LANGは関係ない。 ドライバとサーバ間はUTF-8でやり…

TPSはどんくらいが妥当だろう?

あまり基盤的な性能に詳しくないが、 TPSってどれくらいが妥当だろうか?と 疑問を感じてきた。 いわゆる3秒ルールは、何TPSなんだろうと。 どこかで探せばCPUと関連しての基礎性能があるんだろうな。 コアあたりのTPSってのも忘れないでおこう。 100TPSくら…

データソース設定でIPCを設定できる??

これまでIPCというプロトコルを、Oracleのリスナーの設定で眺める機会はあったが、どういうものか知らないでいた。 どうやらローカルホストに接続するのに向いているらしい。IPCはOCIドライバでしか使えないようである。 JDBC OCIドライバ=JDBCドライバType2…

今日の文字化け

今回のはまだ解決してない。 Oracle11gのchar項目に入ってる2バイト文字が Javaでファイルに書き出した場合に文字化けしている。 特殊な2バイト文字ではなく、簡単な漢字だ。 2バイト文字が全滅。 JavaではOutputStreamWriterにエンコーディングに渡し忘れて…

ojdbc5.jar(11.1.0.6)のバグに遭遇した

酷いバグだな。データソースのルックアップ中に必ず例外が起きてしまう。いちおう、11.1.0.7で解消されている。 11gを使わないといけない急ぎの仕事があったので、 みんなよりも先に使い始めたんだが、ファーストユーザーって面倒だ。 WebSphereにJDBCプロバ…

マニフェスト属性でワーニング

フレームワークをやってると色々な問い合わせを受ける。 そんなこんなで、今日は大変地味な作業をコツコツ繰り返して切り分けを行った。 WebSphereの共用ライブラリがいくつかあって、インストール済みオプションパッケージのマニフェスト属性がどうのこうの…

JREの違いによる文字化けの可能性

今日のアハ体験。winXP上にて、SunJavaとIBMJavaでは、異なるコードポイントになる文字を発見した。 この実験で、文字は、intからbyteを作り、シフトJIS系を表せる2つのbyteを組み合わせ、エンコーディングをStringのコンストラクタに渡しながら生成している…

IncompatibleClassChangeError

2012/11/22追記 ここにいらっしゃった皆さまへ 新しく考えられる理由を書きましたのでこちらを見てください。 java.lang.IncompatibleClassChangeErrorの原因 - きどたかのブログ 2012/11/22追記終わり はじめて見た。 その場では解決出来なかった。そして金…

3つの迷信

http://d.hatena.ne.jp/fromdusktildawn/20081026/p1自分の考えはどうだろうと考えてみた。・「変数のスコープは狭いほど良い」と妄信する 見易さの問題、使いやすさの問題。 使いやすさなんてのは慣れてしまえば苦にならない。 これは結構ケースバイケース…

ずぶ濡れて文字化け

20時頃、飲みに行こうと話していたのだが、 あと1時間仕事させてと 後輩が言うものだから待ってたら、 電話が鳴った。僕直通の番号なのに、 後輩当てかよ。。。文字化けらしい。けっきょく、飲みに行くのは立ち消え。 明日、行くことになった。 後輩は別の作…