2009年11月12日

[Java]アトミックパンチ

JDK5からAtomicIntegerってのがあってだね。

これは原子性をたもってくれるというか、まぁ
同期してるカウンター変数だとおもいねぇ。

いままで
public synchronized void add(int n) {
value += n;
}

とか書いてたのが

public void add(int n) {
value.addAndGet(n);
}


こんなのでいけるようになる。
synchronizeって書けば安全なわけではないんだが、
スレッド個別で生成したローカルオブジェクトに同期してるとかね。
見たことねーかいw )
こっちはライブラリが保証してるし、synchronizeより遥かに速い。
他にもlong用とかもあるよ。

まぁ、いまさらだけどねぇ。
posted by koteitan at 18:43| Comment(1) | TrackBack(0) | Java | このブログの読者になる | 更新情報をチェックする

2009年11月10日

[jython]WebSphere変数の修正・確認

WebSphere変数の〜〜がどうなっているか確認してくれ、
今すぐ、全サーバーで!!

とか言われてもだね、40も50もあるものを管理コンソール
「ポチポチポチポチ PrtSc」 「ポチポチポチポチ PrtSc」 「ポチポチポチポチ PrtSc」

ポチポチポチポチ PrtSc
  ( _, ,_)
_(__つ/ ̄ ̄ ̄/_
  \/    ./
モクヒョウヲセンターニイレテスイッチジャネーンダカラヨ…



         /\
        ../  ./|
      ∴\/./
     _, ,_゚∵ |/
   (ノ゚Д゚)ノ     うわぁあああああ!!脳が腐る!!
  /  /
 ̄ ̄ ̄ ̄ ̄ ̄

ある変数名をJAVA_HOMEとしよう。対象は全範囲。

def show(Category,obj,Name):

print "Category < %s > " % Category
print ""
for ID in obj.splitlines():
val = AdminConfig.list("VariableSubstitutionEntry",ID)
vName=AdminConfig.showAttribute(ID,"name")
print " %s : %s " % (vName,getparam(val,Name))


def getparam(val,Name):

for v in val.splitlines():
if (AdminConfig.showAttribute(v,"symbolicName")==Name):
return AdminConfig.showAttribute(v,"value")
break
return "Not Entry"


show("CELL",AdminConfig.list("Cell"),"JAVA_HOME")
Nodes=AdminConfig.list("Node")
show("NODE",Nodes,"JAVA_HOME")
for n in Nodes.splitlines():
show("SV",AdminConfig.list("Server",n),"JAVA_HOME")



カシャーンとエンターでこんな結果に
Category < CELL >

Cell01 : ${WAS_INSTALL_ROOT}/java
Category < NODE >

CellManager01 : ${WAS_INSTALL_ROOT}/java
Node01 : ${WAS_INSTALL_ROOT}/java
Category < SV >

dmgr : Not Entry
Category < SV >

as1 : Not Entry
as2 : Not Entry
as3 : Not Entry
以下略

現実は残酷である↓
ポチポチポチポチ PrtSc
  ( _, ,_)
_(__つ/ ̄ ̄ ̄/_
  \/    ./
スクリーンショットガヒツヨウナンダッテヨ…ヤッテランネェ

       |
   \  __  /
   _ (m) _ピコーン
      |ミ|
   /  .`´  \
     ('A`)    そうだ!画像加工しよう!
     ノヽノヽ
       くく

            | カチカチカチカチカチカチ
            | アキュポイントでイメージ加工は不可能に近い…
     ∧ ∧ 。o | 
     (;´Д`)/ ̄ \_
_ξ_(__つ / Thinkpad /_
  旦

ポチポチポチポチ PrtSc
  ( _, ,_)
_(__つ/ ̄ ̄ ̄/_
  \/    ./
ノウガクサルノウガクサルノウガクサル


posted by koteitan at 17:15| Comment(0) | TrackBack(0) | jython | このブログの読者になる | 更新情報をチェックする

2009年11月06日

[DB2]エバリュエーションガイド

evaluate 評価する evalとかシェルで使うじゃろ。あれだあれ。



発音聞く限りではイバリュエーションガイドだよな。
V9.7の新機能を中心に解説、とあるな。
posted by koteitan at 16:03| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

[DB2]db2level出来ないとき

インスタンスが無い、又は要らないなどでdb2levelできないときに
バージョンを確認する苦肉の策

(1)db2licm -v
ライセンス情報から確認する。
→ これは大まかなバージョンしかわからない

(2)JDBCドライバから
cd <your_db2_installed>
cd java

jdk/jre/bin/java -cp db2jcc.jar com.ibm.db2.jcc.DB2Jcc -version

で、でたJDBCドライバのバージョンシグネチャと

http://www-01.ibm.com/support/docview.wss?rs=71&dc=DB560&dc=DB520&uid=swg21363866&loc=en_US&cs=utf-8&lang=en

をくらべる。
JDBC4.0を使っているのならdb2jcc.jarをdb2jcc4.jar
しかしこの場合、JDKを付随もものではなく、JDK6を用意せねばならない(WebSphereV7など)
さらに、4.0だとシグネチャが代わり、さっぱりわからん

C:\Program Files\IBM\WebSphere\AppServer\java\jre\bin>java -cp c:\db2jcc4.jar co
m.ibm.db2.jcc.DB2Jcc -version
IBM Data Server Driver for JDBC and SQLJ 4.2.73

ハーッハッハ、詰んだ。
posted by koteitan at 15:54| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする

2009年11月05日

[jython]jython奮闘記(2)

奮闘も糞ももう、jythonでの開発は殆ど終わってるんだけどねー(´-ω-`)

InfocenterとサンプルとXMLと謎のメッセージに格闘してな・・。

記事で紹介したWebSphere Application Server Administration Using Jython
が届いた

まだ、ざーっとしか目を通してないんだが、とりあえず所感

・検索したい
e-bookがあるなら先に言ってくれ orz

章立てはjython入門(python入門)、
Admonオブジェクト紹介、Admintask紹介、
それらをつかった具体例、リファレンスとなる。
jythonスクリプトが出てくる箇所ではコードの説明があるのはGood

しかし、洋書独特のものも有りなん。
P139 List7.15を試してみようとしたが・・・


wsadmin>import WAuJ_utilities as WAuJ
WASX7015E: コマンド "import WAuJ_utilities as WAuJ" を実行中に例外が発生しました
。例外情報:
com.ibm.bsf.BSFException: exception from Jython:
Traceback (innermost last):
File "<input>", line 1, in ?
ImportError: no module named WAuJ_utilities



モジュールが無い。標準じゃねーのか。
欄外に、

13 For the import in line 1 to succeed,the WAuJ_utilities module must be available in one of the sys.path.

1行目のimportをやるにはsys.pathにWAuJ_utilitiesが含まれてないといかんよ。

で、どこにあるんだよ・・。
このあともshowasDict()とかバンバン出てくるんだが、
肝心のモジュールがねぇよヽ(`Д´)ノ リンクもねぇよ

検索してみると海外のフォーラムに断片的にあるから
モジュール自体はどこかに存在してることは確定的

公式サイトがここ(多分)

This site is new, and under construction. Look for new content soon, including articles, sample code, mailing list(s), and more!


鋭意制作中?

ということで★2つ
posted by koteitan at 12:14| Comment(0) | TrackBack(0) | jython | このブログの読者になる | 更新情報をチェックする

2009年11月04日

一般的プロバイダ

ソフマップに買い物に行ったとき、プロバイダに関するアンケート
あった。豪華景品につられてやってみたわけなんだが、

わーい(嬉しい顔)「お使いの回線は?」
モバQ「光 NEXT
わーい(嬉しい顔)「お使いのプロバイダは?」
モバQ「IIJ」
わーい(嬉しい顔)「II・・?なんです?」
モバQ「すべてアルファベット大文字で、I、I、J、数字の4、U」
わーい(嬉しい顔)「IIJ4U・・?初めて聞きました。マニアックですね!」

( ; ゚Д゚)エー

豪華景品はOCNのポケットティッシュ
posted by koteitan at 11:42| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

LANG=C

このCはANSI-CのC。

http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html

決してLANG=C とLANG=en_USはイコールじゃない。仕様上は。

青本
には
「C(POSIX)ロケールが指定された場合、メッセージカタログが使用されず、
プログラムがデフォルトとしてプログラムコードに記述したメッセージ(英語)が出力されます」

とある。まぁ、この英語ってのがen_USだとはどこにも書いていないがね。

まどろっこしい。
つまりこうだ。

printf (catgets (catd, 1, 1, "Hello, world.\n"));

LANGがC以外の場合、その実行ファイルに紐ついた
メッセージが引数2と3で検索。
(この場合、セット1のメッセージ1番が検索される)
NLSPATH(/usr/lib/nls/msg/)にメッセージはある。

無い場合や見つからない場合、第4引数のメッセージが表示される。
LANG=Cはこの第4メッセージを強制する。

en_USの内容がHello、THE WORLD!!!!! URYYYYY!!なら
LANG=Cとは一致しない。
しかし、青本の説明の「英語」という意味ではあっている。

http://euc.jp/i18n/msgcat.ja.html
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/catgets.3.html
http://mstssk.blogspot.com/2009/04/whats-langc.html
http://d.hatena.ne.jp/elf/20090924/1253775215


posted by koteitan at 11:35| Comment(0) | TrackBack(0) | aix | このブログの読者になる | 更新情報をチェックする

2009年10月27日

[WebSphere]EJBキャッシュサイズ

こんな数字をいじくってる人には今更かもしれないが、
この値には素数を入れる。
素数以外を入れた場合においても、WebShereが自動で素数に変換する。

この場合の変換ロジックはマニュアルにあるように、

入力値をx 補正値をyとすると

(1)y≧x
(2)yは素数

の(1)(2)を満たすものを自動で補完する。
マニュアル日本語が意味不明だが、言語英語で読むとちょっとわかりやすいかもしれん。
1500を入れたら、1511に補正されるってことだね。

なんで素数がいいのか、ハッシュ法に基づく。
ハッシュ 素数 バケット あたりでぐぐるとよろしい。
posted by koteitan at 14:00| Comment(0) | TrackBack(0) | WebSphere | このブログの読者になる | 更新情報をチェックする

2009年10月23日

2009年10月21日

[DB2]インストールログ

サイレントインストールした場合のログ保存先

http://www.ibm.com/developerworks/jp/data/library/dataserver/techdoc/installtranspa.html#6_2

インストールのロギング

ログ・ファイルのパスと名前は、DB2セットアップ・プログラムのオプショナル・パラメーターです。ログ・ファイルのパスと名前を指定しない場合は、デフォルトのディレクトリーにデフォルトのログ・ファイルが作成されます。

* Windowsでは、デフォルトのファイルは、DB2インストールが実行されたユーザーIDの下のMy Documents\DB2LOGディレクトリー内のdb2.logです。

* LinuxおよびUNIXプラットフォームでは、デフォルトのファイルは/tmp/db2setup.logです。

これらのログ・ファイル以外に、他の補助ログ・ファイルおよびダンプまたはトレース・ファイルが、デフォルトのディレクトリーに作成されます。

* Windowsでは、指定したパスまたは上記のデフォルトのパスに、db2wi.logという名前の別のログ・ファイルがWindowsインストーラーから作成されます。インストールの間に、現在のインストールのログ・エントリーがdb2wi.logファイルに記録されます。db2.logファイルには、 Windowsの現在および過去のインストールに関する情報が保管されます。この情報は、DB2インストールの終了時に更新されます。

* Linux およびUNIXシステムでは、ほかにもDB2生成ファイルが/tmpディレクトリーに作成される場合があります。db2setup.hisログ・ファイルには、現在および過去のインストールの履歴情報が維持されます。db2setup.errログ・ファイルには、すべてのエラー・エントリーが保管されます。


サイレントのコマンドも環境によって異なる。
(これぐらい合わせられないものか・・(´-ω-`))

win  setup.exe /u resp.file
unix  db2setup -r resp.file
posted by koteitan at 16:25| Comment(0) | TrackBack(0) | DB2 | このブログの読者になる | 更新情報をチェックする