DOA ― データ中心設計

DOA
データ中心設計
企業内のデータを重複なく配置しようとする考え方

DMBS
データベース管理システム

RDB
リレーショナルDB

SQL
データ操作言語
=DDL+DCL

DDL
データ定義言語

DCL
データ制御言語

C/Sシステム
クライアント/サーバーシステム

OODB
オブジェクトをそのまま格納しておけるDB
ex. ObjectStore, Versant, O2


tag
DBMS RDB SQL DDL DCL OODB
2015-04-13 14:35 : engineering : コメント : 0 : トラックバック : 0 :

ソフトウェア工学入門

Software Engineering Advanced

==================================================
【SDLC モデル】Software Development Life Cycle Model

定義
 ソフトウェア=プログラム+データ+ドキュメント
 ○エンジニアリング
 ×マニュファクチャリング
 =古くならない
 =顧客要求にカスタムビルドされるもの

カテゴリ:
 システム ソフトウェア;OS、デバイスドライバー
 リアルタイム ソフトウェア;ATM
 ビジネス ソフトウェア;pay roll system
 ビジネスインフォメーション;ウェブサイト
 Scientific & Engineering;CAD
 組込 ソフトウェア;レンジのキーパッド
 パーソナル ソフトウェア;ゲーム、オフィス
 →カテゴリ別に開発プロセスが類似してる

SWとHWの違い
 HW:infant mortalityに始まりwear outに終わる
 SW:infant mortalityに始まり仕変で安定性は波打つ

欠点
 ・常にオニューとはいかない
 ・人件費がかかる
 ・土台の老朽化
 ・人間のように考えられない=リスク
 # Y2K問題

PJ失敗理由
 顧客から見れば
  ・開発期間が長すぎ
  ・人件費が高すぎ
  ・潜在バグないはず
  ・測定できるはず
 開発側
  ・仕様の理解不足
  ・ドキュメントの不十分さ
  ・新情報、新技術
  ・意思疎通不足
  ・長期メンテ
  ・PJサイズがデカすぎ

プロセス
 =a series of definable, repeatable and measurable tasks leading to
useful result.
 入力=顧客要件→アクティビティ→出力=ソフトウェアソリューション

SW開発のフェーズ
 スタートアップ
 要件分析+定義
 概要設計
 詳細設計
 製造
 統合
 複製、デリバリ、インストール
 受入試験
 保守
 ウィンドアップ

SDLCプロセス
 コアプロセス: 要件→ 設計→ 製造→ 試験
 サポートプロセス:プロジェクトマネージメント+コンフィグレーションマネージメント

SDLCモデル
 ・ウォーターフォールモデル:出戻らない。線表をオーバーラップさせた方が効果的、今やマイナー
 ・プロトタイピングモデル:Evolutionaryアプローチ(内臓も作る)+throw awayアプローチ(完全表面だけの使い捨て)
 ・スパイラルモデル(インタラクティブアプローチ):Object Oriented Software Developmentな大きなPJ
に使う
 ・コンポーネント組込モデル(Evolutionaryアプローチ)

方法論
 ・Structured Software Development Methodologies(トラディショナル)
   @データモデル:Entity Relationship diagrams=ERD
   @プロセスモデル:Data Flow diagrams=DFD
   @テンポラルモデル:State Transition diagrams=STD
 ・Obnect Oriented Software Development Methodologies(最近の主流)
   UML
   @Object-oriented analysis=OOA
   @object-oriented design
   @object-oriented programming
 ・computer aided software engineering=CASE=RAD, MS Visioなど

==================================================
【SRS】Software Requirement Specification

実行可能性 feasibility study
 -technical feasibility
 -operational feasibility
 -cost-effective feasibility

要件収集
 ・ヒアリング
 ・現行システム
 ・現行システムのドキュメント

要件分析
 種類=機能要件+非機能要件
 ?partitioning:問題を砕く
 ?prototyping
 ?"Necessity and Sufficiency"をチェック
 ?成果物(要件定義書+要件仕様書)作成
 ?レビュー=requirement validation

成果物
 ?要件定義書:英語
 ?要件仕様書:UML

モデル
 Structured Software Development Methodologies;ERD、DFD、STD
 Object Oriented Software Development Methodologies;ユースケース図、クラス図、シーケンス図

要件管理
 仕変は CCB (change control board)にかける
SRS
 要件収集と要件分析の成果物

==================================================
【プロジェクト・マネージメント】project management
アーキ設計
データ設計
IF設計
PG設計
==================================================
【設計フェーズ】design phase
==================================================
【製造フェーズ】construction phase
==================================================
【試験フェーズ】testing phase
==================================================
【保守フェーズ】maintenance phase
==================================================
【品質管理フェーズ】quality management phase
==================================================

tag : SDLC Software Development Life Cycle Model Requirement Specification

2015-01-30 14:51 : engineering : コメント : 0 : トラックバック : 0 :

TcpAckFrequency

TAF = TcpAckFrequency

TCP = transmission control protocol = 伝送の種類の1つ
ACK = 応答
Frequency = 頻度

TAF = TCPに対する応答の頻度

tag : TcpAckFrequency TAF

2014-07-15 13:25 : engineering : コメント : 0 : トラックバック : 0 :

[Java] 雑記

StringBuilder≠ThreadSafe
StringBuffer=ThreadSafe

out.printf("[%S]\n", "string");

public enum EnumClass {
 HOGE("hoge"), PIYO("piyo");
 fields;
 constrcutors;
 methods;
}

genericsは共変(covariant)でない

covariant
Integer integer = new Integer(8);
Numner number = integer; // legal
Integer -impl-> Number

IntegerとNumberは継承関係にある
Number=親, Integer=子
子は親を包含しているので親の方に代入可能である

Q. 親Numberを子Integerに代入できるか?
A.
Java#配列の場合は可能∵共変(covariant)だから
Java#Listの場合は付加∵反変(contra-variant)だから

共変(covariant)⇔反変(contra-variant)

Integer[] integerArray = new Integer[](0);
Number[] numberArray = integerArray; // legal

List intList = new ArrayList();
List numList = intList; // illegal
∵ compile err → 互換性のない型 = Not covariant

tag : 共変 covariant 反変 contra-variant Java

2014-06-18 23:18 : engineering : コメント : 0 : トラックバック : 0 :

エクリプスのショートカット

Ctrl + E = エディタタブ切替
Ctrl + T = 型階層
Ctrl + O = アウトライン
2014-01-18 15:53 : engineering : コメント : 0 : トラックバック : 0 :

インフラ入門

グローバル―DMZ―LAN

DMZに置かれるもの:
Webサーバ(http/https)
メールサーバ(sendmail/pop3)
FTPサーバ
DNSサーバ
etc

ref:
ネットワーク構成
http://ft-lab.ne.jp/cgi-bin/wiki.cgi?page=%A5%CD%A5%C3%A5%C8%A5%EF%A1%BC%A5%AF%B9%BD%C0%AE
非常に明解

tag : DMZ LAN

2014-01-18 15:38 : engineering : コメント : 0 : トラックバック : 0 :

理不尽なコンパイルエラーになる

コンパイル通っていたのに
クラスが間接的に参照されて~
とかで急にコンパイルエラーになる

→プロジェクトを一度閉じて開いたら解消した
2013-12-31 16:53 : engineering : コメント : 0 : トラックバック : 0 :

管理コンソール上げずににコマンドでWASのバージョンを確認する

コマンドに
C:\> {...}\WebSphere\AppServer\profiles\Dmgr01\bin>versionInfo.bat
と叩けば以下のように教えてくれる
WVER0010I: Copyright (c) IBM Corporation; All rights reserved.
--------------------------------------------------------------------------------
IBM WebSphere Application Server 製品インストール状況レポート
--------------------------------------------------------------------------------
...
---------------------------------------------------------------------
名前 IBM WebSphere Application Server - ND
バージョン 7.0.0.0
...
--------------------------------------------------------------------------------
インストール状況レポートの終了
--------------------------------------------------------------------------------

tag : WebSphere

2013-12-17 19:48 : engineering : コメント : 0 : トラックバック : 0 :

build.xmlを実行できない

■原因
ant-contrib-{ver}.jar がパスにない

■対応
build.xmlパス通してtaskdefする


■ログ
BUILD FAILED
C:\{workspace}\{project}\build.xml:{line no}: Problem: failed to create task or type runtarget
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any / declarations have taken place.

tag:
antcontrib build ant

tag : antcontrib build ant

2013-12-11 20:17 : engineering : コメント : 0 : トラックバック : 0 :

コマンドプロンプトからFTPでファイルを取得する

C:\tmp>ftp xx.xx.xx.xx
xx.xx.xx.xx に接続しました。
220 Connection will close if idle for more than 30 minutes.
ユーザー (xx.xx.xx.xx:(none)): hoge
331 Send password please.
パスワード:
230 hoge is logged on. Working directory is "hoge.".
ftp> cd /xx/xx
250 HFS directory /xx/xx is the current working directory
ftp> ls
200 Port request OK.
125 List started OK
xx
250 List completed successfully.
ftp: 5 バイトが受信されました 99.00秒 99.00KB/秒。
ftp> dir
200 Port request OK.
125 List started OK
total 99999
-rw-rw-rw- 1 xxx xxxx size date time xxxxx.zip
drwxrwxrwx 5 xxx xxxx size date time xx
250 List completed successfully.
ftp: 99 バイトが受信されました 99.00秒 99.00KB/秒。
ftp> bin
200 Representation type is Image
ftp> get xxxxx.zip
200 Port request OK.
125 Sending data set /xx/xx/xxxxx.zip
250 Transfer completed successfully.
ftp: 99999 バイトが受信されました 99.00秒 99.00KB/秒。
ftp> quit
221 Quit command received. Goodbye.

tag : FTP ftp

2013-12-02 22:07 : engineering : コメント : 0 : トラックバック : 0 :

[Ivy] jcraftがNoClassDefFoundErrorなる

■対応
build.xmlの実行で「構成の編集」開く
クラスパスタグに行く
「ユーザー・エントリー」を選択
右の「JARの追加」をクリック
jsch-{ver}.jarを選択してOKして実行

■ログ
Buildfile: C:\{workspace}\{project}\build.xml
[ivy:cleancache] :: Ivy 2.2.0 - 20100923230623 :: http://ant.apache.org/ivy/ ::
[ivy:cleancache] :: loading settings :: file = C:\{workspace}\{project}\ivysettings.xml

BUILD FAILED
C:\{workspace}\{project}\build.xml:15: java.lang.NoClassDefFoundError: com.jcraft.jsch.SftpException

Total time: 317 milliseconds

tag : JCraft Ivy

2013-12-01 12:17 : engineering : コメント : 0 : トラックバック : 0 :

[Jenkins] Ivyでコケる

■対策
ワークスペースを消して再実行

■原因
昔のゴミが残って多重定義になってコケてるぽい

■ログ
resolve:
[ivy:resolve] :: Ivy version :: http://ant.apache.org/ivy/ ::
[ivy:resolve] :: loading settings :: file = /var/{Jenkins Workspace}/{Organization Dir}/{Product Dir}/ivysettings.xml
[ivy:resolve] [[Fatal Error] ivy.xml:2:2: 文書内の、ルート要素より前にあるマークアップは、整形式でなければなりません。 in file:/var/{Jenkins Workspace}/{Organization Dir}/{Product Dir}/ivy.xml
[ivy:resolve] ]

BUILD FAILED
/var/{Jenkins Workspace}/{Organization Dir}/{Product Dir}/build.xml:5: syntax errors in ivy file: java.text.ParseException: [[Fatal Error] ivy.xml:2:2: 文書内の、ルート要素より前にあるマークアップは、整形式でなければなりません。 in file:/var/{Jenkins Workspace}/{Organization Dir}/{Product Dir}/ivy.xml
]
at org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser$AbstractParser.checkErrors(AbstractModuleDescriptorParser.java:89)
at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser$Parser.parse(XmlModuleDescriptorParser.java:272)
at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser.parseDescriptor(XmlModuleDescriptorParser.java:112)
at org.apache.ivy.plugins.parser.AbstractModuleDescriptorParser.parseDescriptor(AbstractModuleDescriptorParser.java:48)
at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:185)
at org.apache.ivy.Ivy.resolve(Ivy.java:502)
at org.apache.ivy.ant.IvyResolve.doExecute(IvyResolve.java:244)
at org.apache.ivy.ant.IvyTask.execute(IvyTask.java:277)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:390)
at org.apache.tools.ant.Target.performTasks(Target.java:411)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
at org.apache.tools.ant.Main.runBuild(Main.java:809)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Total time: 0 seconds
Build step 'Antの呼び出し' marked build as failure
Notifying upstream projects of job completion
Finished: FAILURE

tag:
Apache Ivy

ref:
http://sey.sitemix.jp/blog/android/android%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80.html

tag : Ivy Jenkins

2013-12-01 11:40 : engineering : コメント : 0 : トラックバック : 0 :

[RAD] 起動できない

■原因
ライセンスが試用となっているIBM Rational Application Developer for WebSphere Softwareを入れたのが根源のよう
なんでも試用のは何かと不安定で問題起こすことあるとか

■対応
Installation ManagerからRADを完全にアンインストールしてから
ライセンスが永続のIBM Rational Application Developer Assembly and Deploymentのフィーチャーを入れる

■現象
正常にインストールできた筈なのにRADを起動できない
一昔ならJavaのバージョンと合ってないやら
昨今でもMacならなんたらのパスがずれてるやら
あるらしいが何れも当てはまらない
C:\{Program Files}\IBM\SDP\eclipse.ini見るとstartupのjarが古い?
ログが無いと言ってるjarも真面目にない

■ログ
//----------
An error has occurred. See the log file
C:\Users\{user}\.eclipse\ibm.software.delivery.platform_7.5.0_xxx\configuration\timestamp.log
!SESSION date time -----------------------------------------------
eclipse.buildId=unknown
java.fullversion=J2RE 1.6.0 xxx
J9VM - xxx
JIT - xxx
GC - xxx
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=ja_JP
Framework arguments: -product com.ibm.rational.rad.product.v75.ide
Command-line arguments: -os win32 -ws win32 -arch x86 -product com.ibm.rational.rad.product.v75.ide

!ENTRY org.eclipse.equinox.app 0 0 date time
!MESSAGE Product com.ibm.rational.rad.product.v75.ide could not be found.

!ENTRY org.eclipse.osgi 4 0 date time
!MESSAGE Application error
!STACK 1
java.lang.RuntimeException: No application id has been found.
at org.eclipse.equinox.internal.app.EclipseAppContainer.startDefaultApp(Unknown Source)
at org.eclipse.equinox.internal.app.MainApplicationLauncher.run(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Unknown Source)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(Unknown Source)

!ENTRY org.eclipse.osgi 2 0 date time
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 date time
!MESSAGE Bundle reference:file:/C:/Program Files (x86)/IBM/SDPShared/plugins/org.eclipse.equinox.frameworkadmin.equinox_1.0.1.R34x_v20080911-1720.jar was not resolved.
----------//

tag:
WebSphere RAD eclipse

tag : WebSphere RAD eclipse

2013-08-08 21:49 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] wsadminでアプリをデプロイ出来ない

■原因
デプロイメントマネージャが起きてない

■対策
 cd /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
とか行って
 ./serverStatus.sh -all
してみて
 「到達できません。停止されているようです。」
とか言われたら
 ./startManager.sh
して起動してあげれば良い

■ログ
AbstractShell A WASX7093I: 次のメッセージを発行します: "WASX7023E: ホスト "127.0.0.1" に "SOAP" 接続を作成中にエラーが発生しました。例外情報: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Protocol; msg=; targetException=java.net.MalformedURLException]"
AbstractShell E WASX7120E: テキスト "com.ibm.websphere.management.exception.ConnectorException
java.lang.reflect.InvocationTargetException: java.lang.reflect.InvocationTargetException
" を持つ、例外からの診断情報:

com.ibm.websphere.management.exception.ConnectorException: ADMC0016E: ポート {port} でホスト 127.0.0.1 に接続するための SOAP コネクターを作成できませんでした
at com.ibm.websphere.management.AdminClientFactory.createAdminClientPrivileged(AdminClientFactory.java:635)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
Caused by: com.ibm.websphere.management.exception.ConnectorNotAvailableException: [SOAPException: faultCode=SOAP-ENV:Protocol; msg=; targetException=java.net.MalformedURLException]
at com.ibm.ws.management.connector.soap.SOAPConnectorClient.reconnect(SOAPConnectorClient.java:409)
Caused by: [SOAPException: faultCode=SOAP-ENV:Protocol; msg=; targetException=java.net.MalformedURLException]
at org.apache.soap.rpc.Call.WASinvoke(Call.java:516)

AdminControlC W WASX7072E: 制御サービスは使用できません。
AdminConfigCl W WASX7198W: 構成サービスが実行されていません。 構成コマンドは実行されません。
AdminConfigCl A WASX7208I: 現在有効な検証設定: レベル=HIGHEST、相互検証=true、出力ファイル=/opt/IBM/WebSphere/AppServer/profiles/default/logs/wsadmin.valout
AdminAppClien W WASX7072E: 制御サービスは使用できません。
AdminAppClien W WASX7206W: アプリケーション管理サービスが実行されていません。 アプリケーション管理コマンドが実行されません。
AdminCmdClien W WASX7198W: 構成サービスが実行されていません。 構成コマンドは実行されません。
AdminCmdClien W WASX8011W: AdminTask オブジェクトは使用できません。
AbstractShell A WASX7411W: 次の指定オプションを無視します: [RMI]
AbstractShell A WASX7090I: 次のコマンドを実行します: "Sync1 = AdminControl.completeObjectName('type=ApplicationManager,node={node_name},process={server_name},*')"
AbstractShell E WASX7120E: テキスト "com.ibm.ws.scripting.ScriptingException: AdminControl service not available
" を持つ、例外からの診断情報:

com.ibm.ws.scripting.ScriptingException: AdminControl service not available
at com.ibm.ws.scripting.AbstractShell.setAndThrowScriptingException(AbstractShell.java:1847)

ref:
http://publib.boulder.ibm.com/infocenter/wsdoc400/v6r0/index.jsp?topic=/com.ibm.websphere.iseries.doc/info/ae/ae/idtokentrb.htm

tag:
WAS ScriptingException AdminControl

tag : WAS ScriptingException AdminControl

2013-07-01 23:17 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] SqlExceptionでアプリを開始できない

■現状
未解決のまま放置中

■事象
SQLJを保持するアプリを開始出来ない
しかも例外も1件のみならず
mapExceptionに詰めないけんほど起きてるゆう
┏━━━━━━━━━━━━━━━━━━━
┃Caused by: com.ibm.db2.jcc.am.SqlException: OPTSUBA.SYSSH300 0X5359534C564C3031
┃ at com.ibm.db2.jcc.am.id.a(id.java:682)
┃ at com.ibm.db2.jcc.am.id.a(id.java:60)
┃ at com.ibm.db2.jcc.am.id.a(id.java:127)
┃ at com.ibm.db2.jcc.am.n.f(n.java:547)
┃ at com.ibm.db2.jcc.am.n.a(n.java:502)
┃ at com.ibm.db2.jcc.am.Sqlca.getJDBCMessage(Sqlca.java:334)
┃ at com.ibm.db2.jcc.am.SqlExceptionContainer.getMessage(SqlExceptionContainer.java:78)
┃ at com.ibm.db2.jcc.am.SqlException.getMessage(SqlException.java:51)
┃ at com.ibm.ws.rsadapter.spi.InternalDB2DataStoreHelper.isAuthException(InternalDB2DataStoreHelper.java:330)
┃ at com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.isAnAuthorizationException(InternalGenericDataStoreHelper.java:1479)
┃ at com.ibm.ws.rsadapter.AdapterUtil.mapException(AdapterUtil.java:2179)
┃ at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:1047)
┃ at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:717)
┃ at sqlj.runtime.profile.ref.RTStatementJDBCBase.executeRTQuery(RTStatementJDBCBase.java:232)
┃ at sqlj.runtime.ExecutionContext$StatementFrame.executeQuery(ExecutionContext.java:1279)
┃ at sqlj.runtime.ExecutionContext.executeQuery(ExecutionContext.java:817)
┗━━━━━━━━━━━━━━━━━━━

■対処
アプリをSQLJをバインドしてみる
管理コンソール > 「アプリケーション」 > 「アプリケーション・タイプ」 > 「WebSphere エンタープライズ・アプリケーション」 > 「application_name」 > 「SQLJ プロファイルおよび pureQuery バインド・ファイル」
カスタマイズ/バインドするファイルの選択および順序付け:全選択
データベース URL:jdbc:db2://localhost:50000/{database_name}
追加オプション:-EXPLAIN YES
クラスパス:/opt/ibm/db2/{ver}/java/db2jcc.jar
# クラスパスは
管理コンソール>環境>WebSphere変数
に設定あればそのパスを参考に絶対パスを指定
したら
┏━━━━━━━━━━━━━━━━━━━
┃Web サイト側でページを表示できません
┃ HTTP 500
┃ 可能性のある原因:
┃Web サイトがメンテナンス中である。
┃Web サイトに、プログラム上の問題がある。
┗━━━━━━━━━━━━━━━━━━━
とか言われた
もういい!

ref:
SQLJ プロファイルおよび pureQuery バインド・ファイル設定
http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.nd.iseries.doc%2Fae%2Fudat_sqljprof.html&lang%3Dja

tag:
WAS SQLJ bind DB2 WebSphere SqlException

tag : WAS SQLJ bind DB2 WebSphere SqlException

2013-06-27 19:24 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] アプリをデプロイ出来ない

■事象
WASにデプロイしようとしたら、
既にデプロイされてるアプリを消してからにしろ
と怒られ、アプリをインストールできない
┏━━━━━━━━━━━━━━━━━━━
┃[wsInstallApp] Installing Application [/{the ear name of deploying target}]...
┃[wsInstallApp] profileName={profile name} registry=/opt/IBM/WebSphere/AppServer/properties/profileRegistry.xml
┃[wsInstallApp] profileHome=/opt/IBM/WebSphere/AppServer/profiles/{profile name}
┃ [wsadmin] WASX7209I: ノード {node name} のプロセス "dmgr" に、SOAP コネクターを使用して接続しました。プロセスのタイプは DeploymentManager です。
┃ [wsadmin] WASX7017E: ファイル "/tmp/wsant6489209516529626157jacl" の実行中に例外を受け取りました。例外情報: com.ibm.websphere.management.exception.AdminException
┃ [wsadmin] javax.management.MBeanException
┃ [wsadmin] com.ibm.websphere.management.exception.AdminException
┃ [wsadmin] com.ibm.websphere.management.exception.AdminException: ADMA0043E: インストールに対して /opt/IBM/WebSphere/AppServer/profiles/{profile name}/config/temp/upload/app7424633199655946237.ear が存在しません。
┃ [wsadmin]
┗━━━━━━━━━━━━━━━━━━━
/opt/IBM/WebSphere/AppServer/profiles/{profile name}/logs/wsadmin.traceout にも例外ログあり
┏━━━━━━━━━━━━━━━━━━━
┃AdminCmdClien E com.ibm.websphere.management.cmdframework.CommandException: java.lang.NullPointerException
┃com.ibm.websphere.management.cmdframework.CommandException: java.lang.NullPointerException
┃ at com.ibm.ws.management.cmdframework.impl.ClientCommandMgr.getAllCommandMetadata(ClientCommandMgr.java:281)
┃ at com.ibm.ws.scripting.adminCommand.AdminCmdClient.generateAdminCmds(AdminCmdClient.java:184)
┃ at com.ibm.ws.scripting.WasxShell.declareBeans(WasxShell.java:498)
┃ at com.ibm.ws.scripting.AbstractShell.run(AbstractShell.java:2175)
┃ at com.ibm.ws.scripting.WasxShell.main(WasxShell.java:1010)
┃ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
┃ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
┃ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
┃ at java.lang.reflect.Method.invoke(Method.java:611)
┃ at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:213)
┃Caused by: java.lang.NullPointerException
┃ at org.apache.soap.transport.TransportMessage.read(TransportMessage.java:206)
┃ at org.apache.soap.util.net.HTTPUtils.post(HTTPUtils.java:698)
┃ at org.apache.soap.transport.http.SOAPHTTPConnection.send(SOAPHTTPConnection.java:425)
┃ at org.apache.soap.rpc.Call.WASinvoke(Call.java:451)
┃ at com.ibm.ws.management.connector.soap.SOAPConnectorClient$8.run(SOAPConnectorClient.java:831)
┃ at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
┃ at com.ibm.ws.management.connector.soap.SOAPConnectorClient.invokeTemplateOnce(SOAPConnectorClient.java:824)
┃AdminCmdClien W WASX8011W: AdminTask オブジェクトは使用できません。
┃AbstractShell A WASX7091I: 次のスクリプトを実行します: "/tmp/wsant5174853223380132366jacl"
┃BackendIdSele W ADMA0091E: モジュール {application name}_ejb.jar に対して URI META-INF/ibm-ejb-jar-bnd.xml で定義されたリソース Enterprise Bean Binding [ com.ibm.ejs.models.base.bindings.ejbbnd.impl.EjbbndFactoryImpl$2@23d023d0 ]
┃AbstractShell E WASX7120E: テキスト "com.ibm.ws.scripting.ScriptingException: WASX7279E: "{application name}" という名前のアプリケーションは既に存在します。 別の名前を選択してください。
┃例外からの診断情報:
┃com.ibm.ws.scripting.ScriptingException: WASX7279E: "{application name}" という名前のアプリケーションは既に存在します。 別の名前を選択してください。
at com.ibm.ws.scripting.AbstractShell.setAndThrowScriptingException(AbstractShell.java:1847)

┗━━━━━━━━━━━━━━━━━━━

■対処
/opt/IBM/WebSphere/AppServer/profiles/{profile name}/wstemp
# WASのテンポラリーなワークスペースでデプロイするアプリは一時ファイルが作られココに保管される
# OOM(Out Of Memory)の根源なことも
にいる分身らしき輩を削除してみるも変わらず

/opt/IBM/WebSphere/AppServer/profiles/{profile name}/temp/wscache
にも分身らしき輩がいたので同様に抹消してみるもやはり変わらず

■結論
知らない間に余所から同じapplication nameでデプロイがあっただけくさい

tag:
WAS WebSphere OOM WASX7279E ScriptingException

tag : WAS WebSphere OOM WASX7279E ScriptingException

2013-06-27 19:23 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] サーバが起動できない

■事象
どうにもサーバが起動しない
/opt/IBM/WebSphere/AppServer/profiles/{profile name}/logs/{server name}にはTransportExceptionなログが出てる
┏━━━━━━━━━━━━━━━━━━━
┃ERROR: [Agent.cpp:164] JDWP error in VM_INIT: TransportException [510/201] binding to port failed (error code: -212)
┗━━━━━━━━━━━━━━━━━━━

■原因
JDWP はポートの競合を示す

■対処
管理コンソールから同サーバの有効になっていたデバッグモードを無効にしてリベンジ
成功◎

デバッグポート7777が競合してたもよう
teratermからnetstatしても7777は出現せず、誰と競合してたかは謎だが結果オーライ

tag:
WAS WebSphere JDWP TransportException

tag : WAS WebSphere JDWP TransportException

2013-06-27 19:21 : engineering : コメント : 0 : トラックバック : 0 :

[WMQ] Linuxでの考えられるMQのディレクトリ

installされてるのは/opt/mqm
logは/var/mqm/log/{キューマネージャ名}/active
# 見てもさっぱりだけど
存在するqmgrを知るには/var/msm/mqs.iniで見れる
エラー系は/var/mqm/errorsにあるAMQnnnnn.mm.FDCゆう名のファイル

ref:
MQ設計虎の巻: 第6回「MQ運用管理と監視」
http://www.ibm.com/developerworks/jp/websphere/library/wmq/toranomaki/6.html
MQ設計虎の巻: 第8回「トラブル・シューティング」
http://www.ibm.com/developerworks/jp/websphere/library/wmq/toranomaki/8.html

tag:
WMQ Linux mqm

tag : WebSphere MQ

2013-06-21 18:11 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] 管理コンソールでは死んでるサーバがコマンドから起動済みと言われる

どっちよ? を知る方法

ノードの場合
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/nodeagent
辺りにnodeagent.pidというのが居たら生きてる

サーバの場合
/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1
辺りにserver1.pidというのが居たら生きてる

このpidファイルは、プロセスIDが記載されてるファイル
コレを消せば何事もなかったようにサーバを起動できる筈

ref:
http://www-06.ibm.com/software/jp/websphere/events/livestream/pdf1.pdf

tag:
WAS WebSphere pid

tag : WebSphere WAS pid

2013-06-21 18:09 : engineering : コメント : 0 : トラックバック : 0 :

[WMQ] コマンドから叩くMQのコマンド

心臓回りの設定を弄るコマンド
 runmqlsr.exe : MQリスナー
 amqpcsea.exe : コマンド・サーバー
 runmqchi.exe : チャネル・イシニエーター
 runmqtrm.exe : トリガー・モニター
  amqfcxba.exe : ブローカー・ワーカー・ジョブ(v7のPub/Subで使用)
  amqfqpub.exe : キューに入れられたパブリッシュ/サブスクライブ・デーモン(V7のPub/Subで使用)

小窓経由に起動停止とかするコマンド
 endmqm : ローカル・キュー・マネージャーを停止します。 endmqm {キュー・マネージャー名 }
 strmqm : ローカル・キュー・マネージャーを始動します。 strmqm {キュー・マネージャー名 }

ref:
http://ichirou16.blogspot.jp/2010/08/mq-v7.html
http://hi.baidu.com/rhisi/item/c7e86692f91ff0dc1a49dfa3

tag:
WMQ mqm

tag : WebSphere MQ

2013-06-21 18:05 : engineering : コメント : 0 : トラックバック : 0 :

[WMQ] リモートのMQに繋げられない

■原因
リモートが繋げられる許可を与えてないから

■対策
リモートのMQ用のグループにアクセスするユーザを登録しとけば良い
useradd -G {group-name} username
きちんと追加出来れば/etc/passwdにアクセスユーザ名が追記されてる筈

ref:
Howto: Linux Add User To Group
http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/

tag:
Linux useradd WebSphere Message Broker WMQ

tag : Linux useradd WebSphere Message Broker WMQ

2013-06-10 23:40 : engineering : コメント : 0 : トラックバック : 0 :

[WAS] いつか気が向いたらWASの超ド基礎に立ち返る

急を要した困った時ようにリンクだけメモ

もうセルだかノードだかサーバやら色々分からな過ぎるんで出直してみようかとも思って分かり易そうなサイトに辿り着いたけど腰が重すぎて立てない
http://www21.atwiki.jp/waspd/pages/17.html
http://download.boulder.ibm.com/ibmdl/pub/software/dw/jp/websphere/was/was7_adminguide/V7Guide_11_Topology_v1.pdf

管理コンソールのポートも意味分からん
http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.nd.iseries.doc%2Finfo%2Fiseriesnd%2Fae%2Frmig_portnumber.html

管理コンソール表示させるにも自力で起動させな始まらんし
http://www.ibm.com/developerworks/jp/websphere/library/was/toranomaki_man/1.html

tag:
WebSphere WAS Cell Node Server Console Port

tag : WebSphere WAS Cell Node Server Console Port

2013-06-10 23:38 : engineering : コメント : 0 : トラックバック : 0 :

PCOMMとは

■--PCOMMへの出入り--------------------------------------------------
 □起動
  新規>IP入れてOK>通信の構成OK
 □ログイン
  TSO>userId>pw>welcome>enter>ISPF Primary Option Menu
   # TSOはapp名
   # 小文字もZには大文字
   # 変な吹き出しはもっ回enterすれば消える
  あんた既にログインしてるし、と怒られた時はPWの後にReconnectの前に”S”入れてからctrlする
 □ログオフ
  SPECIFY DESPOSITIONまで戻る>2>enter(=PROCESS OPTION)>loggoff>enter

■--超基本操作--------------------------------------------------
  Enter=右のctrl or テンキーのenter
  戻る=F3
  更新=ctrl
 -----
  上↑=F7
  下↓=F8
  左←=F10
  右→=F11
  1000行下=1000+F8
  最上=M+F7
  最下=M+F8
   # M=マックス
 -----
  2012年2月16日=2012年の47日目=12047
 -----
  コピー=ビーってしてctrl + insert
  ペースト=ctrl + shift + insert
  絞込み=pre
 -----
  sd = ログ選択できる画面へ
  log = ログ表示
  da = 実行中のログ
  h = 過去のログ
  s = ログへ
  F3 = 決定して戻る
  F12/can = キャンセルして戻る

■--ログを見る--------------------------------------------------
 □SYSLOG一覧
  ISPF Primary Option Menu>sd>enter>SDSF PRIMARY OPTION MENU>log>enter>SDSF OPERLOG=systemの全log
   # sd=SDSF=System Display and Search Facility
   # log=System log

 □JOBLOG一覧
  ミドルのログだけが出るところ
   SDSF OPERLOG>da>enter (何も表示されない場合>pre>enter)=全ジョブログ一覧
   # da=Active user
   # pre=フィルタ

 □過去のログを見る
  SDSF PRIMARY OPTION MENU>h>enter=昔のログ一覧
   # H=Held output queue

 □一覧をフィルタする
  リボンの[Filter]> ctrl > enter/choose 5 > type *(=all) or sth > ctrl
  全ジョブログ一覧>pre {JOBNAME条件}>enter=条件を満たす全ジョブログ一覧
   ex
    pre hogepiyo=完全一致
    pre hoge*=前方一致
    pre *=無条件

 □見る
  ログ一覧>見たいログの左側へ>s>enter=ログの中身

 □探す
  ログの中身>f {検索文字列入力}>ctrl+F5

 □画面切替
  Command input > start + ctrl = new window, F9 = switch the window (only b/w latest 2 windows)
  Command input > input [swap] + ctrl = switch windows b/w several windows. (windows max to 8.)

■--JCLに触る--------------------------------------------------
 □JCLまで行く
  ISPF Primary Option Menu>3(=Utilities)>enter>4(=Dslist)>enter
   # ISPF Primary Option Menu>3.4>enter でも同じ
  >Dsname Level: {データセットのあるディレクトリ名}
   ※ クオテーションで囲まないこと
  >Volume serial: {ボリューム}
  >enter=指定されたディレクトリの入り口?
   # 画面が変わらない時は右上に黄色いメッセージが出る
   # Volume not availableと怒られた場合はvolume無記載でenterすれば進める
  >入りたいディレクトリの左側へ>v>enter=ディレクトリ内のJCL一覧

 □JCLを見る
  JCL一覧>見たい奴の左側へ>v>enter=JCLの中身
   # v=view=参照のみで開く

 □JCLを消す
  JCL一覧>d>enter>enter
   # d=delete=削除

 □JCLを触る
  Goto the left of the target dataset
  E[edit] ctrl
  Res ctrl
  # delete the warning at the screen top
  Goto where wanna to edit, and then edit it by overwriting
  Switch the mode, insert or overwriting by the insert-button
  Edit the first word, which indicates the dataset name of joblog.
  Attention! The really last letter of line will be deleted
  Down to command
  Save ctrl
  Can[cancel] ctrl

 □JCLを叩く
  Open with e or v
  Down to command
  Sub[submit] ctrl
2013-01-21 02:23 : engineering : コメント : 0 : トラックバック : 0 :

J2EE/ look up with initial context

Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
String hostName = "9.9.9.9";
String port = "9102";
String url = "corbaloc::" + hostName + ":" + port;
env.put(Context.PROVIDER_URL, url);
InitialContext iniCtx;
try {
iniCtx = new InitialContext(env);
connectionFactory = (ConnectionFactory) iniCtx.lookup("jms/ConnectionFactory");
} catch (NamingException e) {
e.printStackTrace();
}

でトライしたところ
javax.naming.NoInitialContextException: Failed to create InitialContext using factory specified in hashtable {java.naming.provider.url=corbaloc::9.9.9.9:9102, java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory} [Root exception is java.lang.NullPointerException]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:243)
at javax.naming.InitialContext.initializeDefaultInitCtx(InitialContext.java:318)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:348)
at javax.naming.InitialContext.internalInit(InitialContext.java:286)
at javax.naming.InitialContext.(InitialContext.java:211)
at test.Test.main(Test.java:11)
Caused by: java.lang.NullPointerException
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:235)
... 7 more
で怒られ

com.ibm.ws.sib.client.thin.jms_7.0.0.jar
通すも変わらず

でとりあえず放置してイロハから。

----------

スタンドアロン・シン・クライアント
http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/ccli_standaloneclient.html
Network Deployment (すべてのオペレーティング・システム) バージョン 7.0 > アプリケーションについての学習 > クライアント・アプリケーション > クライアント・アプリケーションのタイプ

の内の「スタンドアロン・シン・クライアント・アプリケーション」か「IBM Thin Client for Enterprise JavaBeans (EJB)」が目的

そのためにはConnectionFactorylookupで取得せねばならない
lookupにはInitialContextに渡すPropertiesを定かにせねばならない

例: プロバイダー URL プロパティーの設定による初期コンテキストの取得
http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/rnam_example_prop5.html
Feature Pack for SCA バージョン 1.0 (すべてのオペレーティング・システム) > WebSphere アプリケーションについての学習 > クライアント・アプリケーション > 概要: クライアント・アプリケーション > クライアント・アプリケーションのタイプ

によれば
WAS は 「CORBA オブジェクト URL」と「IIOP URL」をサポートしてて前者推奨

また気が向いた時まで凍結。

XXX

http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Frnam_example_prop5.html

http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Frnam_example_prop3.html

http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Ftnam_develop_naming.html


http://www.java2s.com/Code/Java/J2EE/ThisexampleisasimpleJMSclientapplication.htm

http://www.ne.jp/asahi/hishidama/home/tech/java/j2ee/jms.html

http://stackoverflow.com/questions/4178091/javax-naming-noinitialcontextexception-failed-to-create-initialcontext-using-fa

tag : XXX ConnectionFactory lookup InitialContext CORBA IIOP URL jms WsnInitialContextFactory J2EE

2012-09-28 00:47 : engineering : コメント : 0 : トラックバック : 0 :

WebSphere MQ/ jar の在り処

/usr/lpp/mqm/V7R0M1/java/lib とかに
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mqjms.jar
とかがある

tag:
WebSphere MQ mq jmqi mqjms jar

tag : WebSphere MQ mq jmqi mqjms jar

2012-08-22 06:45 : __j2ee__ejb : コメント : 0 : トラックバック : 0 :

WMQ/ NoClassDefFoundError: JmqiOptionAdapter

■現象
java.lang.NoClassDefFoundError: com/ibm/mq/jmqi/system/JmqiConnectOptions$JmqiOptionAdapter

■原因
jar が古かった

■経緯
classpath には com.ibm.mq.jmqi.jar をきちんと通してる。
jar を zip にして解凍してみたところ JmqiConnectOptions もきちんと存在している
インナークラスはコンパイルされると「CCDT$CCDTRecord.class」みたくダラーマーク連結のクラスファイルになる
なので JmqiConnectOptions$JmqiOptionAdapter.class なるファイルがあるはずが ない!
結論
jar が古い

■ちなみに
役立たなかったけど
com.ibm.mq.jmqi.jar
 Java のための MQ
 JMS のための MW
を実装して=それら IF に依存していてそれぞれ
 com.ibm.mq.jar
 com.ibm.mqjms.jar
にある。
つまり これらもきちんとパスに通っていないとダメ
# 環境変数に食わせてることもあったり
ただし
環境が古い場合は
 jms.jar
 com.ibm.mq.jmqi.jar
でいいとか

ref:
http://www-01.ibm.com/support/docview.wss?uid=swg21316673
http://8318.blog100.fc2.com/blog-entry-577.html

tag:
NoClassDefFoundError JmqiConnectOptions JmqiOptionAdapter WebSphere MQ JMS jar

tag : NoClassDefFoundError JmqiConnectOptions JmqiOptionAdapter WebSphere MQ JMS jar

2012-08-18 01:01 : __j2ee__ejb : コメント : 0 : トラックバック : 0 :

Ant/ AntでJunit出来ない

■問題
The for must include junit.jar if not in Ant's own classpath

□みちのり
http://stackoverflow.com/questions/4809695/ant-junit-error-ant-wants-the-junit-jar-in-its-classpath
見ると
To save you the lookup, the options are reproduced below. My preference is option 1.
1. Put both junit.jar and ant-junit.jar in ANT_HOME/lib.
2. Do not put either in ANT_HOME/lib, and instead include their locations in your CLASSPATH environment variable.
3. Add both JARs to your classpath using -lib.
4. Specify the locations of both JARs using a element in a in the build file.
5. Leave ant-junit.jar in its default location in ANT_HOME/lib but include junit.jar in the passed to . (since Ant 1.7)
とある

そもそもAntがinstallされてない
ref: http://www.javadrive.jp/ant/install/
↓行って
http://ant.apache.org/bindownload.cgi
「apache-ant-1.8.3-bin.zip」をclick
適当に展開したらinstall完了
環境変数に
「変数名」に"ANT_HOME"、「変数値」に"C:\{zipを展開したとこ}\apache-ant-1.8.2"を入力してシステム環境変数を追加
「Path」を編集して「%ANT_HOME%\bin;」を追加
とやってみたが関係ない気してきた

■対応
http://ideoplex.com/id/25/ant-and-junit
見ると
you must add junit.jar to your CLASSPATH or copy junit.jar to your Ant library from your JUnit library to enable the integration of JUnit and Ant.
とあるので
build.xml
classpathに
<'pathelement location="C:/IBM/SDPShared/plugins/org.junit4_4.3.1/junit.jar" />
を追加
もしくはrefして先の何処かに<’path path="C:/IBM/SDPShared/plugins/org.junit4_4.3.1/junit.jar"/>詰め込み
したら進んだ◎
と思ったらRAD再起動したら書かんでも行けた
意味不明
けど結果オーライ

□ちなみに
http://d.hatena.ne.jp/uriyuri/20081003/1223025514
によれば
{ANT_HOME}/libにJUnitのjarファイルがない場合なので、jarを入れておくか、Eclipseで実行している場合は、Antのパスに通す
すれば良いようだから
eclipse>window>setting>Ant>runtime>ant home>外部jarでC:/IBM/SDPShared/plugins/org.junit4_4.3.1/junit.jarを追加してみたが
プロジェクトの方もpathいじらんとダメぽいので断念


ref:
Ant JUnit Tasks in en
http://ant.apache.org/manual/Tasks/junit.html
Ant JUnit Tasks in jp
http://www.jajakarta.org/ant/ant-1.5/docs/ant-1.5/j/docs/manual/OptionalTasks/junit.html
Antなサイト
http://www.aksystem.jp/computer/AntPower/AntPower.htm
# colorfulで見やすい
http://works.dgic.co.jp/djwiki/Viewpage.do?pid=@616E74E7B7A8
# simpleで見やすい

tag : ant build xml junit junitreport

2012-03-21 23:51 : __fw__junit : コメント : 0 : トラックバック : 0 :

JDNI/ developing applications that use JNDI

configure JNDI caches
JNDI caching can greatly inrease performance of JNDI lookup operations. By default, JNDI caching is enabled.
JNDI clients can use several properties to control cache behavior.
1.
from the command line by entering the actual string value.
ex.
java -Dcom.ibm.websphere.naming jndicache.maxentrylife=1440
2.
in a jndi.properties file by creating a file names jndi.properties as a text file with the desired properties settings.
ex.
com.ibm.websphere.naming.jndicache.cacheobject=none
3.
within a java program by using PROPS_JNDI_CACHE java constants, defined in the com.ibm.websphere.naming.PROP file.
java.util.Hashtable env = new java.util.Hashtable();
...

// Disable caching
env.put(PROPS.JNDI_CACHE_OBJECT, PROPS.JNDI_CACHE_OBJECT_NONE); ...
javax.naming.Context initialContext = new javax.naming.InitialContext(env);

sample:
import java.util.Hashtable;
import javax.naming.InitialContext;
import javax.naming.Context;
import com.ibm.websphere.naming.PROPS;

/*****
Caching discussed in this section pertains to the WebSphere Application
Server initial context factory. Assume the property,
java.naming.factory.initial, is set to
"com.ibm.websphere.naming.WsnInitialContextFactory" as a
java.lang.System property.
*****/

Hashtable env;
Context ctx;

// To clear a cache:

env = new Hashtable();
env.put(PROPS.JNDI_CACHE_OBJECT, PROPS.JNDI_CACHE_OBJECT_CLEARED);
ctx = new InitialContext(env);

// To set a cache's maximum cache lifetime to 60 minutes:

env = new Hashtable();
env.put(PROPS.JNDI_CACHE_MAX_LIFE, "60");
ctx = new InitialContext(env);

// To turn caching off:

env = new Hashtable();
env.put(PROPS.JNDI_CACHE_OBJECT, PROPS.JNDI_CACHE_OBJECT_NONE);
ctx = new InitialContext(env);

// To use caching and no caching:

env = new Hashtable();
env.put(PROPS.JNDI_CACHE_OBJECT, PROPS.JNDI_CACHE_OBJECT_POPULATED);
ctx = new InitialContext(env);
env.put(PROPS.JNDI_CACHE_OBJECT, PROPS.JNDI_CACHE_OBJECT_NONE);
Context noCacheCtx = new InitialContext(env);

Object o;

// Use caching to look up home, since the home should rarely change.
o = ctx.lookup("com/mycom/MyEJBHome");
// Narrow, etc. ...

// Do not use cache if data is volatile.
o = noCacheCtx.lookup("com/mycom/VolatileObject");
// ...


specify the name syntax
INS syntax is designed or JNDI clients that need to interoperate with CORBA applications. this syntax
allows a JNDI client to make the proper mapping to and from a CORBA name. INS syntax is very similar to the JNDI syntax with the additional special character, dot(.). dots are used to delimit the id and kind fields in a anme component. a doc is interpreted literally when it is escaped. only one unescaped dot is allowed in a name component. a name component with a non-empty is field and empty kind field is represented with only the id firld value and must not end with an unescaped dot. and empty name component is represented with a single nescaped dot. an empty string is not a valid name component represntation.



XXX

ref:
JNDI を使用するアプリケーションの開発
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/tnam_develop_naming.html

tag : JNDI XXX

2011-08-06 07:03 : j2ee : コメント : 0 : トラックバック : 0 :

J2EE/ JNDI/ リソース参照

JNDIネームスペースはセルを頂点とするツリー構造になっている
(=WAS管理モデルのセル-ノード-サーバの関係と同様)

JNDIの名前は3種類ある
JNDI完全修飾名
JNDIシンプル名
JNDI ENC名

JNDI完全修飾名
コンテキスト名を上位のものから"/"で区切って表記する
ただし
ノード・コンテキスト名の前には"nodes/"を入れ
サーバ・コンテキスト名の前には"servers/"を入れる
ex.
was3NetWork/nodes/was2/servers/server1
(was3NetWorkというセルの下のwas2というノードの下のserver1というサーバ)
WAS V5.xでは
セル名を"cell"で置換できるので
cell/nodes/was2/servers/server1
ともできる
このセルレベルからコンテキストを順に記述したものがJNDI完全修飾名(compound名)
クラスタ構成であれば
cell/clusters/{クラスタ名}
となる

JNDIシンプル名
jdbc/NantokaDataSourceみたいな書き方のこと
lookupする側のAPが稼動するプロセス内でのみ有効な名前

JNDI ENC名
"java:comp/env/jdbc/NantokaDataSource"みたいに"java:comp:env"で始まる書き方のこと
コレが推奨される書き方
DataSource dc = (DataSource) ictx.lookup("java:comp/env/jdbc/NantokaDataSource");
な具合にlookupする
ENC は environment naming context(環境ネーミングコンテキスト) で
lookupする側のWebアプリ(*.war)やEJB-JAR(*.jar)内でのみ有効なネームスペースに定義される

※ JNDIでのlookupは何度行っても結果は同じなので初期化時に取得するのが一般的


作成したdatasourceはWASのJNDIネームスペースの何処にどのようにbindされているのか?
dumpNameSpace utilityを使うとサーバを示すコンテキストの直下にJDBCプロバイダで定義したdataソースがbindingされているのが分かる
(最上位)/nodes/was3/servers/jdbc/sample
てな具合
※ dumpNameSpace utility:
WASのJNDIネームスペースにバインドされたオブジェクト(contextとbinding)とlinkの一覧を表示するdumpNameSpace.[bat|sh]

完全修飾名はフルパスなのでlookup出来て当然
が同様にしてENC名でcell/nodes/was3/servers/jdbc/sampleをjava:comp/env/jdbc/sampleで取ることは出来ない
ENC命はAP内のみで有効なlocalなnamespaceに定義されているのに対し
datasourceはAP内のresourceでないために取れない
なので
ENC名からserver側のblobalなnamespaceで定義されたresourceを指す何らかの参照を持たせば良い
コレがJ2EE仕様のリソース参照(resource reference)の背景


リソース参照を定義するためには?

WASに添付のAAT(application assembly tool)を使用するか
WebSphere StudioのDD(deployment descriptor : 配置記述子)エディタを使用する
※ 後者はweb.xmlに記述されるやり方

リソース参照を定義したらそのAPをデプロイする
途中の「リソース参照をリソースにマップ」リソース参照がbindingされる


ENC名+リソース参照を利用するメリットは?

完全修飾名にはセルのトポロジーに依存するだけでなく
was3やserver1のようにノード名やサーバ名に依存するコンテキスト名が含まれる
JNDI完全修飾名を使用していた場合
開発から運用の間に環境が変わるとAPのコード修正と再コンパイルが必要になる
一方
JNDI END名とリソース参照 なら
APの外部でリソースとのmappingが出来るためコード修正も再コンパイルも要らない
というのがメリット


ref:
今さら人に訊けないJNDI: 第2回 「リソース参照って何ですか?」
http://www.ibm.com/developerworks/jp/websphere/library/was/was_jndi/2.html

tag : JNDI リソース参照

2011-08-02 01:44 : j2ee : コメント : 0 : トラックバック : 0 :

WebLogic/ different from tomcat

tomcat is not j2ee, thus it doesnt have application.xml.
□j2ee needs application.xml.
□cache of weblogic is <'C:\bea\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_user>.★
also, make sure to delete the project unused via the weblogic admin server console.
□reason why cant deploy w/ weblogic:
cuz, there is the setting to log out to the file(web-inf/calculator.log) which located in a war file.
--log4j.xml:
<'appender name="LOGFILE" class="org.apache.log4j.FileAppender">
<'param name="File" value="${03mvc_ex01answer.root}/WEB-INF/calculator.log" />
<'layout class="org.apache.log4j.PatternLayout">
<'param name="ConversionPattern"
value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
<'/layout>
<'/appender>
--
thus, set the log-file location as C:\bea\user_projects\domains\base_domain\servers\AdminServer\logs,
might be successful.
□when to input add-mail w/ outlook
type some keyword (id) and ctrl+K.
□UnsupportedClassVersionError: Bad version number in .class file :
make sure the two, <'eclipse-project-property-Java compiler-JDK compliance-X.X> and <'C:\..\Java\jdk1.X>.
□IOException parsing XML document from ServletContext resource [/WEB-INF/testing-servlet.xml];
nested exception is java.io.FileNotFoundException: Could not open ServletContext resource :
write as following.
--web.xml
<'servlet>
<'servlet-name>testing<'/servlet-name>
<'servlet-class>
org.springframework.web.servlet.DispatcherServlet
<'/servlet-class>
<'!-- just try -->
<'init-param>
<'param-name>contextConfigLocation<'/param-name>
<'param-value>/WEB-INF/applicationContext.xml<'/param-value>
<'/init-param>
<'load-on-startup>1<'/load-on-startup>
<'/servlet>
--

tag : WebLogic tomcat

2011-05-21 16:44 : apsrv : コメント : 0 : トラックバック : 0 :
ホーム  次のページ »

search

ad



counter


tag cloud

category cloud