これは正しいレポートだと思う。あまりにもAgileは喧伝されすぎているし、その背後にある難しさが隠されている。Agileには、一定のガバナンスとルールを制定することが必要だと思う。それは開発者に対してではなく、プロジェクトに対してである。
物議を醸すVokeの報告がAgile採用者に警告
2012年7月31日火曜日
2012年7月27日金曜日
DECODE
DECODE
数値の等価、大小関係を評価するには SIGN 関数。
SIGN ( expr )
Return:[+1:整数、0:ゼロ、-1:負数]
最小 、最大を評価するには、GREATEST関数、LEAST関数
GREATEST ( expr_list )
LEAST ( expr_list )
Return: 最も小さい、大きい数。文字列。
数値の等価、大小関係を評価するには SIGN 関数。
SIGN ( expr )
Return:[+1:整数、0:ゼロ、-1:負数]
最小 、最大を評価するには、GREATEST関数、LEAST関数
GREATEST ( expr_list )
LEAST ( expr_list )
Return: 最も小さい、大きい数。文字列。
2012年7月3日火曜日
PureSystem
メモ。Flex System Managerの2重化は必要ないのか?
Expert Integrated System
PureFlex --- サーバー、ストレージ、ネットワーク、そして仮想化の一元管理、最適管理
power , x86
Storage V7000
Integrated (Flex System Manager)
PowerVM
PureApplication
+ Application -- パターン化による最適化
Expert Integrated System
PureFlex --- サーバー、ストレージ、ネットワーク、そして仮想化の一元管理、最適管理
power , x86
Storage V7000
Integrated (Flex System Manager)
PowerVM
PureApplication
+ Application -- パターン化による最適化
2012年6月27日水曜日
Continuous Integration -001-
「 継続的インテグレーション」の翻訳版が2009年(USでは2007年)に発刊され、昨年は「継続的デリバリー」も発刊された。クライアントの中でも、本で記述された内容まではいかないが、ビルド、デプロイの自動化をスクラッチで実装する事例がでてきた。
今年の目標はRQM + RTCの連携検証にJenkinsを絡めて、トータルな継続的デリバリーの基盤を構築したい。とかく、開発者としての興味がある範囲なので、面白いということが先行するが、目指すところは、ムダの排除だと思っている。ビルドミス、リグレッションテストミス、デプロイミスといったビジネスと関係ないところのミスを最大限低減することである。
今年の目標はRQM + RTCの連携検証にJenkinsを絡めて、トータルな継続的デリバリーの基盤を構築したい。とかく、開発者としての興味がある範囲なので、面白いということが先行するが、目指すところは、ムダの排除だと思っている。ビルドミス、リグレッションテストミス、デプロイミスといったビジネスと関係ないところのミスを最大限低減することである。
2012年6月13日水曜日
FAH-GL Tuning Memo
・ 初期化パラメータの調整
・ 統計情報の最適化(特に初期実行時)
・ 「会計の作成」のパラレル化(CPUスレッド数を意識)、アドオン・コンカレントマネージャの作成。
・ 「会計のプログラム」のプロセッサ数、一回あたりの処理単位の調整(自環境でのベンチマーク実施は必須)
・ バッチ処理実施時における「XLA_EVENTS」の未処理データの扱い。標準プログラムのSQLが未処理データを常に参照する為、本当に必要な範囲で「XLA_EVENTS」に取り込む。取り込み時はバルクAPIを使えるならば、使ったほうがよい。
・ 各コンカレントマネージャのポーリング時間の調整。
・ アドオンの取込の際にFAHのテーブルを見てチェックロジックを入れる場合は、アプリケーションIDとイベント区分を必ず入れること。FAHのテーブルは、その2つでパーティション化されている為。
・ 統計情報の最適化(特に初期実行時)
・ 「会計の作成」のパラレル化(CPUスレッド数を意識)、アドオン・コンカレントマネージャの作成。
・ 「会計のプログラム」のプロセッサ数、一回あたりの処理単位の調整(自環境でのベンチマーク実施は必須)
・ バッチ処理実施時における「XLA_EVENTS」の未処理データの扱い。標準プログラムのSQLが未処理データを常に参照する為、本当に必要な範囲で「XLA_EVENTS」に取り込む。取り込み時はバルクAPIを使えるならば、使ったほうがよい。
・ 各コンカレントマネージャのポーリング時間の調整。
・ アドオンの取込の際にFAHのテーブルを見てチェックロジックを入れる場合は、アプリケーションIDとイベント区分を必ず入れること。FAHのテーブルは、その2つでパーティション化されている為。
ラベル:
Info:OracleEBS12
Clean Coder (Chapter6. Practice)
この本に限ってではないけど、西洋の人達は、「型」とか「乱取り」とか、「サムライ」とか「禅」というコトバが、いつでも好きだな。際限の無い目的思考から離れ、その日常の生活の中での繰り返し(ミニマム)を大事にする。逆に目的をきちんと考えずに説明資料を作成したり、行動を実施する日本人は、西洋人のプレゼン・スタイル、説明スタイルを見習っているのに。。
日本人の自分としては、「Practice」というコトバが好きだ。際限の無い「Practice」を継続的に続けることが、プロフェッショナルとしての1つのルールだと思う。
日本人の自分としては、「Practice」というコトバが好きだ。際限の無い「Practice」を継続的に続けることが、プロフェッショナルとしての1つのルールだと思う。
2012年6月5日火曜日
Clean Coder (Chapter5. TDD)
Clean CoderのTDDの3原則はくどく感じたので、自分なりの解釈を記述してみる。
- ソースコードを記述する前に失敗する単体テストケースを記述すること。ソースコードが完成する直前には、自動化されたテストケースが完成している。(Coverage 90%以上)
- 単体テストケースを記述することは、モジュールの疎結合を目指すことになる。(テストが実施できるソースを開発するようになる為)
- ソースコード完成時に、数分以内に完了するリグレッション・テストが用意可能になる。(変更に対する恐れがなくなる。自動化された単体、受入テストケースが無い場合、結局は大丈夫だと思って実施しないテストケースがでてくるが、その内容が自動化されたテストケースに含まれることになり、より堅牢になる)
2012年5月23日水曜日
Oracle DB Cache Clear
10gからの進歩ですね。忘れずに。
共有プール クリア
(ライブラリキャッシュ<解析済のSQLやPL/SQL等>、データディクショナリキャッシュ)
データベースバッファ キャッシュ クリア(10g~)
(データファイルから読み込まれたデータ・ブロックのコピーが格納される領域)
共有プール クリア
(ライブラリキャッシュ<解析済のSQLやPL/SQL等>、データディクショナリキャッシュ)
ALTER SYSTEM FLUSH SHARED_POOL;
データベースバッファ キャッシュ クリア(10g~)
(データファイルから読み込まれたデータ・ブロックのコピーが格納される領域)
ALTER SYSTEM FLUSH BUFFER_CACHE ;
2012年5月21日月曜日
strings & files
滅多に使うことはないと思うが、stringsコマンド
「ファイルから文字列相当と認識できる部分を探して表示する」
バイナリファイルとかが有効。バイナリファイルがコンパイル時に内部に取り込んだディレクトリとかをgrepと合わせて検索することが可能
$ strings -f /user/bin/*.exe XXXXX.exe | grep .....
みたいな感じかな。今まで数回しか使ったこない。
こちらの方が使うかな。fileコマンド。
指定されたファイルを分析して、ファイルの種類」を表示してくれます。
$ file [file name]でOK.
「ファイルから文字列相当と認識できる部分を探して表示する」
バイナリファイルとかが有効。バイナリファイルがコンパイル時に内部に取り込んだディレクトリとかをgrepと合わせて検索することが可能
$ strings -f /user/bin/*.exe XXXXX.exe | grep .....
みたいな感じかな。今まで数回しか使ったこない。
こちらの方が使うかな。fileコマンド。
指定されたファイルを分析して、ファイルの種類」を表示してくれます。
$ file [file name]でOK.
2012年5月16日水曜日
emacs (dired) -起動-
同じフリーである「Sakura Editior」等に戻りたくなる気持ちに負けず、「emacs」 を無理やり使っているが、少しづつ慣れてきた。今更ながら、「ディレクトリエディタ(dired)」について学ぶ。
C-x dかM-x dired
別フレームで起動したい場合は、C-x 5 d(
別ウィンドウでC-x 4 d (
C-x dかM-x dired
別フレームで起動したい場合は、C-x 5 d(
dired-other-frame) 別ウィンドウでC-x 4 d (
dired-other-window)。 2012年4月14日土曜日
V$SQL_PLAN
V$SQLから調査したいSQLを探し出した後、ADDRESS、HASH_VALUEやSQL_IDでV$SQL_PLANから実行計画を取得し、整形するスクリプト(小田さんのページから借用)
【パターン①】
column id format 999 newline
column operation format a20
column options format a15
column object_name format a22 trunc
column optimizer format a3 trunc
select id
, lpad (' ', depth) || operation operation
, options
, object_name
, optimizer
, cost
from v$sql_plan
where hash_value = &hash_value
and address = '&address'
start with id = 0
connect by
(prior id = parent_id
and prior hash_value = hash_value
and prior child_number = child_number
)
order siblings by id, position;
【パターン②】
column id format 999 newline
column operation format a20
column options format a15
column object_name format a22 trunc
column optimizer format a3 trunc
select id
, lpad (' ', depth) || operation operation
, options
, object_name
, optimizer
, cost
from v$sql_plan
where sql_id = &sql_id
start with id = 0
connect by (prior id = parent_id
and prior sql_id = sql_id
and prior child_number = child_number
)
order siblings by id, position;
【パターン①】
column id format 999 newline
column operation format a20
column options format a15
column object_name format a22 trunc
column optimizer format a3 trunc
select id
, lpad (' ', depth) || operation operation
, options
, object_name
, optimizer
, cost
from v$sql_plan
where hash_value = &hash_value
and address = '&address'
start with id = 0
connect by
(prior id = parent_id
and prior hash_value = hash_value
and prior child_number = child_number
)
order siblings by id, position;
【パターン②】
column id format 999 newline
column operation format a20
column options format a15
column object_name format a22 trunc
column optimizer format a3 trunc
select id
, lpad (' ', depth) || operation operation
, options
, object_name
, optimizer
, cost
from v$sql_plan
where sql_id = &sql_id
start with id = 0
connect by (prior id = parent_id
and prior sql_id = sql_id
and prior child_number = child_number
)
order siblings by id, position;
2012年4月3日火曜日
test (file)
結構忘れているよなー
test expression
[ expression ]
-r file fileが「読み取り可」ならば真
-w file fileが「書き込み可」ならば真
-x file fileが「実行可」ならば真
-f file fileが「普通のファイル」ならば真
-d file fileが「ディレクトリ」ならば真
-s file fileが「0より大きいサイズ」ならば真
! NOT(否)の意味。「この直後の判定が偽」なら真
-a AND(かつ)。「この前後の判定がどちらも真」なら真
-o OR(または)。「この前後の判定のどちらかが真」なら真
sample
[ -r file -a w file -a ! -x file ]
fileが読み書き可能で実行不可の場合に真
test expression
[ expression ]
-r file fileが「読み取り可」ならば真
-w file fileが「書き込み可」ならば真
-x file fileが「実行可」ならば真
-f file fileが「普通のファイル」ならば真
-d file fileが「ディレクトリ」ならば真
-s file fileが「0より大きいサイズ」ならば真
! NOT(否)の意味。「この直後の判定が偽」なら真
-a AND(かつ)。「この前後の判定がどちらも真」なら真
-o OR(または)。「この前後の判定のどちらかが真」なら真
sample
[ -r file -a w file -a ! -x file ]
fileが読み書き可能で実行不可の場合に真
2012年3月21日水曜日
2012年3月19日月曜日
EBS12.1.3 定期コンカレント
調べる限り、以下8つだな。
1.OAM Applicationsダッシュボード収集
OAMのワークフロー統計情報表示を最新化
2.ワークフロー制御キュー・クリーン・アップ
3.ワークフローLOCAL表の同期化
4.ワークフロー・エージェント・アクティビティ統計コンカレント・プログラム
5.ワークフロー・メーラー コンカレント統計コンカレント・プログラム
6.ワークフロー作業項目統計コンカレント・プログラム
OAMのワークフロー統計情報表示を最新化
7.ログおよびクローズ済システム・アラートのパー ジ
8.fnd_sessionsから廃止セッションを削除
PER_FND_SESSIONS_CLEANUP (プログラム名)
1.OAM Applicationsダッシュボード収集
OAMのワークフロー統計情報表示を最新化
2.ワークフロー制御キュー・クリーン・アップ
3.ワークフローLOCAL表の同期化
4.ワークフロー・エージェント・アクティビティ統計コンカレント・プログラム
5.ワークフロー・メーラー コンカレント統計コンカレント・プログラム
6.ワークフロー作業項目統計コンカレント・プログラム
OAMのワークフロー統計情報表示を最新化
7.ログおよびクローズ済システム・アラートのパー ジ
FND_LOG_MESSAGES FND_LOG_EXCEPTIONS FND_LOG_ATTACHMENTS FND_LOG_METRICS FND_LOG_TRANSACTION_CONTEXT
8.fnd_sessionsから廃止セッションを削除
PER_FND_SESSIONS_CLEANUP (プログラム名)
ラベル:
Info:OracleEBS12
2012年3月14日水曜日
I bought Amazon Touch
前にも買おうかなとブログに記述したが、Amazon Touchが日本にImport可になったので、買ってみた。1ドル81円程度で12,000円強。その他のタブレット系に比べると安い。
ユーザーインタフェースの使い心地は、思ったより悪い。iPhoneとか慣れている人は、少しストレス溜まるかも。 AmazonのWebサイトと連動した本(Kindle Edition)の購入は良い。買った本がインターネットを通じて、Touchに送付されてくるのには、今更ながら少し感動。しかも、安い。洋書や日本語版で5000円ぐらいかかるのが、1500円程度で購入できる。
日本語書籍もでてきたら、文庫等はこっちの方が良いのかも。
ユーザーインタフェースの使い心地は、思ったより悪い。iPhoneとか慣れている人は、少しストレス溜まるかも。 AmazonのWebサイトと連動した本(Kindle Edition)の購入は良い。買った本がインターネットを通じて、Touchに送付されてくるのには、今更ながら少し感動。しかも、安い。洋書や日本語版で5000円ぐらいかかるのが、1500円程度で購入できる。
日本語書籍もでてきたら、文庫等はこっちの方が良いのかも。
2012年3月8日木曜日
JDeveloper with OAF
大した話ではないけど、たまに引っかかるのでメモ
JDeveloperで作成して、コンパイルも通っているソースを他のプロジェクトフォルダに移行した時にコンパイルエラーが発生することがある。ライブラリを揃っているのに何故?
JDevelpoerのコンパイル時の文字コードが、cpXXXX系にデフォルトなっている為である。 JDevloperのエディタも文字コードと合わせるようにすること。
JDeveloperで作成して、コンパイルも通っているソースを他のプロジェクトフォルダに移行した時にコンパイルエラーが発生することがある。ライブラリを揃っているのに何故?
JDevelpoerのコンパイル時の文字コードが、cpXXXX系にデフォルトなっている為である。 JDevloperのエディタも文字コードと合わせるようにすること。
2012年3月6日火曜日
2012年3月2日金曜日
svmon
svmonでメモリ使用量のTop15をシンプルに出すコマンド
# svmon -Pt15 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'
# svmon -Pt15 | perl -e 'while(<>){print if($.==2||$&&&!$s++);$.=0 if(/^-+$/)}'
2012年2月29日水曜日
IBM JDK & OAS
OASのjavaプロセスのメモリが微増している。-Xmxの数値に達しながら、わずかながら、微増している。16Kぐらいかな。Native heapのExpandなのか。でも何も使用していないし。もう少し調査をしなければならないかな。
ラベル:
Info:OracleEBS12
2012年2月15日水曜日
JVM & EBS
「OACore: OA Framework」 、
「Forms : Forms ベースアプリケーションの実行」、
「OAFM (Oracle Apps Fusion Middleware) : web サービス、mapviewer 」の
3つのインスタンスが同一のJVM上で稼動する。
Heap Memoryの設定も-Xms、-Xmxは実施するが、
意外と下記の値はデフォルトのままである。下記はIBM JDKの場合。
Native Heap Size -Xminf -Xmaxf -Xmine -Xmaxe -Xgcthread -Xpartialcompactgc -Xgcpolicy
ラベル:
Info:OracleEBS12
2012年2月14日火曜日
OC4J Service from EBS R12
OACore : OA Framework ベースアプリケーションの実行
Forms : Forms ベースアプリケーションの実行
OAFM (Oracle Apps Fusion Middleware) : web サービス、mapviewer の実行
ラベル:
Info:OracleEBS12
2012年2月10日金曜日
DBMS_METADATA.GET_GRANTED_DDL
XXXスキーマに付与されたすべてのシステム権限付与を示すDDLの取得
SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT','XXX')
FROM DUAL;
全部取得できるのかと思ったら、抜けがある。注意!
2012年1月30日月曜日
AOL/J End
とりあえず、今理解している範囲でのEBSのJDEBC接続プールの動きである。基本の動きは11i、12とも変わっていない。このプールの仕組の上にApplication Moduleの仕組が搭載されている。その辺の動きついては、また今度かな。
ラベル:
Info:OracleEBS12
AOL/J Part6.
やっと最後。FND_JDBC_USABLE_CHECKは変更した方が良いと思うが、後は無視してもよいと俺は思う。どういうときに設定を見直す必要があるのか、教えてください。
FND_JDBC_USABLE_CHECK
FND_JDBC_USABLE_CHECKは接続をクライアントに貸し出す前にPL/SQLでの検索を行うかどうかを決定する。プールは接続を渡す前に使用可能かどうかのチェックを行う。これは常に接続がNullではなく、またクローズされていないことのチェックある。FND_JDBC_USABLE_CHECKがtrueに設定されていると、更にその接続が、簡単なPL/SQLの検索を行うことができるどうかの確認も行なわれる。
これはデフォルトがfalseになっているので注意。Safetyチェックなので、できればTrueにした方が良いと思うが、何故PL/SQLのみなのか、説明はない。JavaからPL/SQLをコールする場合の方法としてチェックが必要という意味なのだろうか?
FND_JDBC_CONTEXT_CHECK
FND_JDBC_CONTEXT_CHECKは、接続がプールに戻されるときにAOLのセキュリティ情報とNLSの状態がデータベースから取得されるかどうかを決定する。FND_JDBC_CONTEXT_CHECKがtrueの場合、接続がプールに戻されるときにこれらが取得される。(これはDBConnObj.isReusable() に実装されている)。このチェックは選択アルゴリズムが利用可能リストにある接続のセッション情報にアクセスできるよう、接続が返されるときに行われる。
FND_JDBC_PLSQL_RESET
PL/SQLリセットのフラグは、プールがクライアントに接続を渡す前にその接続で持っているPL/SQLの状態が解放されるかどうかを左右する。このフラグのデフォルトはfalseです。trueにセットされると、プールが接続を渡す前にPL/SQLの状態がクリアされる。
プールは利用可能なリストの中からクライアントのための接続を選択した後、その接続の初期化を
行う。その初期化のうちの一つが、後にapps initializationのルーチンが実行される必要があ
るかどうかを決定するためにSessionManagerによって利用されるフラグをセットすることである。
FND_JDBC_PLSQL_RESETがtrueにセットされていると、このフラグは常にtrueとなります。プールは接続を初期化した後、その接続が使用可能かどうかのチェックも行う。この場合、チェックはPL/SQLの状を解放するDBMS_SESSION.RESET_PACKAGEの実行も行う。これがtrueに設定されていると、プールのパフォーマンスは悪くなる。
FND_JDBC_USABLE_CHECK
FND_JDBC_USABLE_CHECKは接続をクライアントに貸し出す前にPL/SQLでの検索を行うかどうかを決定する。プールは接続を渡す前に使用可能かどうかのチェックを行う。これは常に接続がNullではなく、またクローズされていないことのチェックある。FND_JDBC_USABLE_CHECKがtrueに設定されていると、更にその接続が、簡単なPL/SQLの検索を行うことができるどうかの確認も行なわれる。
これはデフォルトがfalseになっているので注意。Safetyチェックなので、できればTrueにした方が良いと思うが、何故PL/SQLのみなのか、説明はない。JavaからPL/SQLをコールする場合の方法としてチェックが必要という意味なのだろうか?
FND_JDBC_CONTEXT_CHECK
FND_JDBC_CONTEXT_CHECKは、接続がプールに戻されるときにAOLのセキュリティ情報とNLSの状態がデータベースから取得されるかどうかを決定する。FND_JDBC_CONTEXT_CHECKがtrueの場合、接続がプールに戻されるときにこれらが取得される。(これはDBConnObj.isReusable() に実装されている)。このチェックは選択アルゴリズムが利用可能リストにある接続のセッション情報にアクセスできるよう、接続が返されるときに行われる。
FND_JDBC_PLSQL_RESET
PL/SQLリセットのフラグは、プールがクライアントに接続を渡す前にその接続で持っているPL/SQLの状態が解放されるかどうかを左右する。このフラグのデフォルトはfalseです。trueにセットされると、プールが接続を渡す前にPL/SQLの状態がクリアされる。
プールは利用可能なリストの中からクライアントのための接続を選択した後、その接続の初期化を
行う。その初期化のうちの一つが、後にapps initializationのルーチンが実行される必要があ
るかどうかを決定するためにSessionManagerによって利用されるフラグをセットすることである。
FND_JDBC_PLSQL_RESETがtrueにセットされていると、このフラグは常にtrueとなります。プールは接続を初期化した後、その接続が使用可能かどうかのチェックも行う。この場合、チェックはPL/SQLの状を解放するDBMS_SESSION.RESET_PACKAGEの実行も行う。これがtrueに設定されていると、プールのパフォーマンスは悪くなる。
ラベル:
Info:OracleEBS12
AOL/J Part5
FND_JDBC_MAX_WAIT_TIME(変更不可)
最大待ち時間は、クライアントが接続を取得しようとするのにどの位の時間を費やすかを決定する。
す。接続をプールから借りるアルゴリズムには、経過時間を最大待ち時間と比較してチェックする
機能が組み込まれている。最大値を超えた場合、nullがクライアントに返されます。事前定義の
設定は10秒。
FND_JDBC_SELECTION_POLICY(変更不可)
選択ポリシーは、あるクライアントに関しての接続が、利用可能な接続のリストからどのように選択されるかを決定する。コストベースの選択アルゴリズムを採用するよう事前定義されています。このアルゴリズムでは、そのクライアントの状態に一致するように行われる初期化処理が最小になる。
Pool.COSTと呼ばれるコストベースが設定されている。
最大待ち時間は、クライアントが接続を取得しようとするのにどの位の時間を費やすかを決定する。
す。接続をプールから借りるアルゴリズムには、経過時間を最大待ち時間と比較してチェックする
機能が組み込まれている。最大値を超えた場合、nullがクライアントに返されます。事前定義の
設定は10秒。
FND_JDBC_SELECTION_POLICY(変更不可)
選択ポリシーは、あるクライアントに関しての接続が、利用可能な接続のリストからどのように選択されるかを決定する。コストベースの選択アルゴリズムを採用するよう事前定義されています。このアルゴリズムでは、そのクライアントの状態に一致するように行われる初期化処理が最小になる。
Pool.COSTと呼ばれるコストベースが設定されている。
ラベル:
Info:OracleEBS12
AOL/J Part4
FND_JDBC_BUFFER_DECAY_INTERVAL
バッファ減衰間隔はどの位の頻度で接続プールのメンテナンスが行われるかを指定する。
スレッドはバッファサイズを最大でもFND_JDBC_BUFFER_DECAY_INTERVAL秒毎にチェックする。
各サイクル間の実際の時間はJVMの負荷によって幾らか異なる。実際は大分ずれていると思う。
このパラメータは、FND_JDBC_BUFFER_DECAY_SIZEと共にバッファの減衰量の調整に利用される。例えば、バッファ減衰サイズが3で減衰間隔が1分の場合、1分当たりのバッファの減衰量は3を超えることはない。デフォルトは300秒だったりする。60秒までインターバルを短くすることは可能。
負荷が高い時は、FND_JDBC_BUFFER_DECAY_INTERVALとFND_JDBC_BUFFER_DECAY_SIZEの2つの値の調整に尽きると思う。想定される負荷(例えば、1分あたり増加量以上の数値を設定すればよい)
FND_JDBC_BUFFER_DECAY_SIZE
バッファ減衰サイズは利用可能な接続がバッファサイズ以上になっているときに1回のスレッドのサ
イクルで除去されるべき接続の最大数を指定する。このパラメータは、FND_JDBC_BUFFER_DECAY_
INTERVALと共に減衰量の調整のために使用される。
設定値によるケースパターンは後で記述。
バッファ減衰間隔はどの位の頻度で接続プールのメンテナンスが行われるかを指定する。
スレッドはバッファサイズを最大でもFND_JDBC_BUFFER_DECAY_INTERVAL秒毎にチェックする。
各サイクル間の実際の時間はJVMの負荷によって幾らか異なる。実際は大分ずれていると思う。
このパラメータは、FND_JDBC_BUFFER_DECAY_SIZEと共にバッファの減衰量の調整に利用される。例えば、バッファ減衰サイズが3で減衰間隔が1分の場合、1分当たりのバッファの減衰量は3を超えることはない。デフォルトは300秒だったりする。60秒までインターバルを短くすることは可能。
負荷が高い時は、FND_JDBC_BUFFER_DECAY_INTERVALとFND_JDBC_BUFFER_DECAY_SIZEの2つの値の調整に尽きると思う。想定される負荷(例えば、1分あたり増加量以上の数値を設定すればよい)
FND_JDBC_BUFFER_DECAY_SIZE
バッファ減衰サイズは利用可能な接続がバッファサイズ以上になっているときに1回のスレッドのサ
イクルで除去されるべき接続の最大数を指定する。このパラメータは、FND_JDBC_BUFFER_DECAY_
INTERVALと共に減衰量の調整のために使用される。
設定値によるケースパターンは後で記述。
ラベル:
Info:OracleEBS12
AOL/J Part3
FND_JDBC_BUFFER_MIN
最小バッファは、プールが利用可能リストに保持しようとする最小の接続数。
バッファサイズがFND_JDBC_BUFFER_MIN以下になると、プール管理のスレッドは
新しい接続を作るように通知される。通知されると、スレッドは即座にその差分を
埋めるだけの接続を作成しようと試みます。プールが既に最大値に達している場合には
新しい接続は作成されない。
このパラメータを0に設定すると、最小バッファのメンテナンスは無効化されます。
しかし、最大バッファのメンテナンスは行われたままです。一方でパラメータを
FND_MAX_JDBC_CONNECTIONSより大きな値に設定すると、全てのバッファのメンテナンス
は無効化される。
FND_JDBC_BUFFER_MAX
最大バッファはプールが利用可能リストに保持しようとす接続の最大数です。
負荷の高い間、バッファは最大数を超えることがあります。しかし、負荷が低くなると、
メンテナンスのスレッドは最大バッファの数までバッファを減少させます。
値が整数(例:30)の場合、最大バッファは固定。
一方でパーセント(例:20%)の場合、最大バッファは一定ではなく、代わりにトータルの
プールサイズのパーセントとして動的に算出される。最小バッファも最大バッファを
動的に決定する際に考慮される。( 整数値にパーセント記号(%)を変えることで変更可能であり
%の場合は10%以上が指針)
maximum(t) = minimum + ( (FND_JDBC_BUFFER_MAX/100) * FND_MAX_JDBC_CONNECTIONS)
ここで、maximum(t)及びsize(t)はある時刻における最大バッファとプールサイズです。
スレッドは定期的にバファサイズをチェックします。バッファサイズが最大バッファより
大きい場合、スレッドはFND_JDBC_BUFFER_DECAY_SIZEに指定された数もしくは
最小バッファを超えた接続数の内、より小さい方の数だけ利用可能な接続を減少させます。
接続が利用可能リストから除去されるとき、最も長い時間利用されていないものが
最初に除去される。
このパラメータを100%に、あるいはFND_MAXIMUM_JDBC_CONNECTIONSと同じ値
及びFND_JDBC_BUFFER_MIN以下の値に設定することでメンテナンスのスレッドが
接続を除去されないようになる。
このパラメータを0に設定すると、最大バッファのメンテナンスは無効化される。
FND_JDBC_BUFFER_MINとFND_JDBC_BUFFER_MAXの双方を0に設定するとメンテナンス
がされなくなる。通常はMINとMAXの間で維持しようとする。
最小バッファは、プールが利用可能リストに保持しようとする最小の接続数。
バッファサイズがFND_JDBC_BUFFER_MIN以下になると、プール管理のスレッドは
新しい接続を作るように通知される。通知されると、スレッドは即座にその差分を
埋めるだけの接続を作成しようと試みます。プールが既に最大値に達している場合には
新しい接続は作成されない。
このパラメータを0に設定すると、最小バッファのメンテナンスは無効化されます。
しかし、最大バッファのメンテナンスは行われたままです。一方でパラメータを
FND_MAX_JDBC_CONNECTIONSより大きな値に設定すると、全てのバッファのメンテナンス
は無効化される。
FND_JDBC_BUFFER_MAX
最大バッファはプールが利用可能リストに保持しようとす接続の最大数です。
負荷の高い間、バッファは最大数を超えることがあります。しかし、負荷が低くなると、
メンテナンスのスレッドは最大バッファの数までバッファを減少させます。
値が整数(例:30)の場合、最大バッファは固定。
一方でパーセント(例:20%)の場合、最大バッファは一定ではなく、代わりにトータルの
プールサイズのパーセントとして動的に算出される。最小バッファも最大バッファを
動的に決定する際に考慮される。( 整数値にパーセント記号(%)を変えることで変更可能であり
%の場合は10%以上が指針)
maximum(t) = minimum + ( (FND_JDBC_BUFFER_MAX/100) * FND_MAX_JDBC_CONNECTIONS)
ここで、maximum(t)及びsize(t)はある時刻における最大バッファとプールサイズです。
スレッドは定期的にバファサイズをチェックします。バッファサイズが最大バッファより
大きい場合、スレッドはFND_JDBC_BUFFER_DECAY_SIZEに指定された数もしくは
最小バッファを超えた接続数の内、より小さい方の数だけ利用可能な接続を減少させます。
接続が利用可能リストから除去されるとき、最も長い時間利用されていないものが
最初に除去される。
このパラメータを100%に、あるいはFND_MAXIMUM_JDBC_CONNECTIONSと同じ値
及びFND_JDBC_BUFFER_MIN以下の値に設定することでメンテナンスのスレッドが
接続を除去されないようになる。
このパラメータを0に設定すると、最大バッファのメンテナンスは無効化される。
FND_JDBC_BUFFER_MINとFND_JDBC_BUFFER_MAXの双方を0に設定するとメンテナンス
がされなくなる。通常はMINとMAXの間で維持しようとする。
ラベル:
Info:OracleEBS12
AOL/J Part2
AOL/Jにおいて、各種パラメータの定義、設定のポイントを記述する。
FND_MAX_JDBC_CONNECTIONS
利用可能な(Available)接続とロック(lock)された(他のクライアントによって使用中で
利用不可の)接続の総計の許容される最大数。プールが最大サイズに達して、
全ての接続がロックされると、現在のクライアントが返却しない限り
新しいクライアントはプールから接続を借りることができません。
デフォルトの設定は500.(12.1.3)
設定した時は、Oracle DBの 初期化パラメータであるProcessesにも気をつけること。
FND_MAX_JDBC_CONNECTIONS > PROCESSESだと、PROCESSESの数値を超えて、
新規コネクションを作成する段階でORA-00020が発生する。
FND_MAX_JDBC_CONNECTIONS達して、再利用可能なコネクションが存在しない場合、
Oracle AS側からエラーが戻される。 その他として、エンハンス機能である
AOL/J Connection Harvesterというものがあるが、現時点は稼動確認を取っていないので、
説明は無。
ラベル:
Info:OracleEBS12
AOL/J Part1
年明けから結構経ってしまった。反省。
EBSの JDBCのConnection Poolingの仕組である。アプリケーションモジュールのプーリングの仕組とは異なるので注意が必要。
AutoConfigで調整が可能である為、大量負荷がかかるOAFのアプリケーションをデリバリする場合は、負荷テストで、各値の数値の増減を確認した方がよい。
(オラクル社より診断ツールが提供されている。プロファイルは「FND: 診断」を「Y」に変えると、取得することが可能になり、「AOL/Jデータベース接続 プール・ステータス」というメニューから表示可能である。ログイン後、以下のURLを叩いても可能。
http://<hostname>:<port>/OA_HTML/jsp/fnd/AoljDbcPoolStatus.jsp
「available connection」、「locked connections」、「connection destroyed ( by thread)」を中心にモニタリングした方がよい。「leaked connections」は存在しないと認識するが、仮に発生していたら調査をした方がよい。
EBSの JDBCのConnection Poolingの仕組である。アプリケーションモジュールのプーリングの仕組とは異なるので注意が必要。
AutoConfigで調整が可能である為、大量負荷がかかるOAFのアプリケーションをデリバリする場合は、負荷テストで、各値の数値の増減を確認した方がよい。
(オラクル社より診断ツールが提供されている。プロファイルは「FND: 診断」を「Y」に変えると、取得することが可能になり、「AOL/Jデータベース接続 プール・ステータス」というメニューから表示可能である。ログイン後、以下のURLを叩いても可能。
http://<hostname>:<port>/OA_HTML/jsp/fnd/AoljDbcPoolStatus.jsp
「available connection」、「locked connections」、「connection destroyed ( by thread)」を中心にモニタリングした方がよい。「leaked connections」は存在しないと認識するが、仮に発生していたら調査をした方がよい。
ラベル:
Info:OracleEBS12
2011年12月29日木曜日
emacs part2
Del (delete-backward-char) カーソルの左の文字を削除
C-d (delete-char) カーソルの文字を削除
C-k (kill-line) 行のカーソル以降を削除しkill-ringへ
C-w (kill-region) regionの範囲を削除してkill-ringへ
C-d (delete-char) カーソルの文字を削除
C-k (kill-line) 行のカーソル以降を削除しkill-ringへ
C-w (kill-region) regionの範囲を削除してkill-ringへ
2011年11月25日金曜日
unix 指定日以前を削除
$ find <path> -type f -ctime +7 | xargs rm
指定<path>以下にあるファイルで、作成後7日経過したものを削除する。
-type:ファイルの種類。fはファイル
-atime:ファイルアクセスがあったファイル
-ctime:ファイルステータスが変更されたファイル
-mtime:ファイルが修正されたファイル
指定<path>以下にあるファイルで、作成後7日経過したものを削除する。
-type:ファイルの種類。fはファイル
-atime:ファイルアクセスがあったファイル
-ctime:ファイルステータスが変更されたファイル
-mtime:ファイルが修正されたファイル
2011年11月19日土曜日
while
sleepを入れつつ、繰り返しコマンド実行(OSコマンド編)
<Pattern1>
$ while true; do ls -l; sleep 5; done
<Pattern2>
$ while true;
> do ls -l;
> sleep 5;
> done
sleepを入れつつ、繰り返しsqlplus実行(sqlplus編) --- inst.sqlは作成済
<Pattern1>
$ while true; do echo "@inst"; sleep 5; done | sqlplus <userid>/<password>
<Pattern2>
$ while true;
> do echo "@inst.sql";
> sleep 5;
> done | sqlplus <userid>/<password>
<Pattern1>、<Pattern2>も特に違いはなく見栄え。
<Pattern1>
$ while true; do ls -l; sleep 5; done
<Pattern2>
$ while true;
> do ls -l;
> sleep 5;
> done
sleepを入れつつ、繰り返しsqlplus実行(sqlplus編) --- inst.sqlは作成済
<Pattern1>
$ while true; do echo "@inst"; sleep 5; done | sqlplus <userid>/<password>
<Pattern2>
$ while true;
> do echo "@inst.sql";
> sleep 5;
> done | sqlplus <userid>/<password>
<Pattern1>、<Pattern2>も特に違いはなく見栄え。
2011年11月11日金曜日
emacs part1.
3度目の正直になるか -- emacs --
C-x C-f (find-file) ファイルを読込
C-x C-s (save-buffer) カレントバッファを保存
C-x C-w (write-file) カレンドバッファを別名で保存
C-x i (insert-file) カーソル位置にファイルを挿入
C-x C-f (find-file) ファイルを読込
C-x C-s (save-buffer) カレントバッファを保存
C-x C-w (write-file) カレンドバッファを別名で保存
C-x i (insert-file) カーソル位置にファイルを挿入
2011年11月8日火曜日
2011年11月7日月曜日
ITL Slot lack
ORA-00060のデッドロックが発生する際に、INITRNSの設定が小さいことからITL Slotが不足してデッドロックが発生する。通常はMAXTRANSで設定した値によって、ITL Slotを拡張するが、設定値が低い場合に大量の並列化処理が同一データブロックに走った場合に、ITL Slot獲得待ちのデッドロックが発生する。
INITRNSを予め大きめに設定しておくことが対応策としてあるが、1スロット24KBの確保が必要なので、確保し過ぎるとブロックのデータ格納量が不足する。スロット数の理想値は、格納される行数。
trcファイル上では、TXエンキューにおいて、holds X、waits Sが出力されており、AWR上は「enq: TX -allocate ITL Entry」が出力されている。
INITRNSを予め大きめに設定しておくことが対応策としてあるが、1スロット24KBの確保が必要なので、確保し過ぎるとブロックのデータ格納量が不足する。スロット数の理想値は、格納される行数。
trcファイル上では、TXエンキューにおいて、holds X、waits Sが出力されており、AWR上は「enq: TX -allocate ITL Entry」が出力されている。
FAH:Create Accounting(会計の作成) Part2.
FAHは「会計の作成」プログラム実施周りの処理フローを制御する為にイベントを準備している。カスタムで定義ができる。
oracle.apps.xla.accounting.preaccounting ( batch mode only)
「会計の作成」の実施前のイベント。
oracle.apps.xla.accounting.extract(batch and document mode)
「会計の作成」、「会計プログラム」のどの段階でも呼出可能なイベント。
oracle.apps.xla.accounting.postprocessing(batch and document mode)
「会計の作成」、「会計プログラム」の後の後処理で入れられるイベントである。ステータスのフラグ
更新等での使用を想定している。
oracle.apps.xla.accounting.postaccounting(batch and mode only)
全てのプログラムでデータベースにコミットを完了した後、呼ぶことが可能。
oracle.apps.xla.accounting.preaccounting ( batch mode only)
「会計の作成」の実施前のイベント。
oracle.apps.xla.accounting.extract(batch and document mode)
「会計の作成」、「会計プログラム」のどの段階でも呼出可能なイベント。
oracle.apps.xla.accounting.postprocessing(batch and document mode)
「会計の作成」、「会計プログラム」の後の後処理で入れられるイベントである。ステータスのフラグ
更新等での使用を想定している。
oracle.apps.xla.accounting.postaccounting(batch and mode only)
全てのプログラムでデータベースにコミットを完了した後、呼ぶことが可能。
ラベル:
Info:OracleEBS12
2011年10月27日木曜日
FAH:Create Accounting(会計の作成) Part1.
「会計の作成」は、コンカレント・プログラムで登録されているが、実体はXML PUBLISHERである。かつ、内部的にBusiness Event Systemを使用していて、会計プログラムを発行する手前(?)でキューイングしている。キュー表はXLAスキーマの「XLA_ACCOUNTING_QTAB」。
ラベル:
Info:OracleEBS12
2011年10月23日日曜日
DB停止障害の初期調査
簡単に確認できることなので、停止障害時には最初の手順として 先ず組み入れること
1. インスタンスが起動しているかを確認
ps -ef | grep <Oracleプロセス>
2. ログインできるかを確認
sqlplus <user>/<pass>
3. リスナーに接続できるかを確認
tnsping <接続文字列> <試行回数>
lsnrctl status
4. alert.log
1. インスタンスが起動しているかを確認
ps -ef | grep <Oracleプロセス>
2. ログインできるかを確認
sqlplus <user>/<pass>
3. リスナーに接続できるかを確認
tnsping <接続文字列> <試行回数>
lsnrctl status
4. alert.log
2011年10月17日月曜日
2011年10月11日火曜日
PPT Architect Vs Pragmatic Programmer
年齢が上になるに連れ、リーダーとして、コーディングや実作業をすることは少なく、進捗管理や課題、リスク管理、チーム内見積作業の管理系タスクが
多くなる。例えば、課題においては、一発でクライアントに理解してもらえるわかりやすいPPTを作成し、論理的に対応策、そのPROS/CONSを説明し、厳しい質問にも冷静に回答する。提案作業も同様。オブジェクト指向のモデリングの結果が如何にモデリングとして今後の保守性を踏まえ素晴らしいかではなく、今回のシステム構築によりPSI計画の考え方がどのように代わりに、クライアントにどのようなポジティブな変化が発生するのか?
一方、現実的に見てきた世界として、往々にしてコアな技術的な人ほど、いいことを言いたいはずなのに、説明は長く、資料も偏り過ぎており、ビジネスが見えていないことが多い。ただ、それは説明や絵ごころといったコアスキルが欠けているだけであり、コアスキルが欠けている中においても特殊性を発揮している人はいっぱい居る。
これは、どっちがいいという話ではない。
我々が目指すとことはPPT Architectであり、達人プログラマーであり、クライアントへのサービスマン(SIサービス事業、コンサルタント・サービス事業)という 3つの柱を両立させることに真摯に挑戦するということだと思う。あまりにも、ロールにこだわり、自分の仕事の範囲を自ら制限することが多くなったと思う。
もったいない。 可能性を追求することが面白いのに。
一方、現実的に見てきた世界として、往々にしてコアな技術的な人ほど、いいことを言いたいはずなのに、説明は長く、資料も偏り過ぎており、ビジネスが見えていないことが多い。ただ、それは説明や絵ごころといったコアスキルが欠けているだけであり、コアスキルが欠けている中においても特殊性を発揮している人はいっぱい居る。
これは、どっちがいいという話ではない。
我々が目指すとことはPPT Architectであり、達人プログラマーであり、クライアントへのサービスマン(SIサービス事業、コンサルタント・サービス事業)という 3つの柱を両立させることに真摯に挑戦するということだと思う。あまりにも、ロールにこだわり、自分の仕事の範囲を自ら制限することが多くなったと思う。
もったいない。 可能性を追求することが面白いのに。
2011年10月10日月曜日
XLA_EVENTS/XLA_AE_HEADERS Status Code
XLA_EVENTS
[EVENT_STATUS_CODE] I - 未完了(Incomplete) U - 未処理(Unprocessed) N - 未対応(No Action) P - 完了(Processed)
[Process_status_code]
D - Draft (GLに転送しないドキュメントモード)
E - Error (エラー)
I - Invalid (検証エラー) P - Processed (処理中) R - Related event in error U - Unprocessed (未処理)
XLA_AE_HEADERS
[GL_TRANSFER_STATUS_CODE]
N - 未転送(Not transferred) S - 選択された転送(Selected for transfer) Y - 転送済(Transferred)
ラベル:
Info:OracleEBS12
2011年10月7日金曜日
GL Import
「GL_INTERFACE」に格納された仕訳明細データをインポートし、仕訳明細データが正常に取り込まれた後、Truncateを実施するが、データがエラーだったり、他のデータが残る場合(例えばGROUP ID等でパラレル化している場合)、Delete文を発行する。
ラベル:
Info:OracleEBS12
2011年10月3日月曜日
和暦変換
select to_char(sysdate,'eeyy/mm/dd','NLS_CALENDAR=''Japanese Imperial''') from dual;
忘れがちなので、とりあえず。
2011年10月2日日曜日
2011年9月29日木曜日
Amazon Tablet
iPad、iPhone5が市場を席巻しているが、Amazon Kindleの良さに今更ながら、気づいた。。。洋書の技術書があんなに安く買えるとは。。かつ、重い洋書が何十冊も入るし。。。時代に取り残されているな、俺。Tabltも昨日発表されたし、買おうか。
FAH Partition Table
FAHのXLA_EVENTS、XLA_DISTRIBUTION_LINKS、XLA_AE_LINES、XLA_AE_HEADERSテーブルは標準としてモジュール別にパーティション化されている。更にサブパーティション化を実施することはサポート外である為、注意。今後変更される可能性があるので、都度確認が必要。
2011年9月24日土曜日
OAFとADF
JSFが2.0になり、ADF11gも着実に進歩していてWeb Centerとの統合も進められているが、EBSのOAFのTechnologyは従来までのADF10gのままである。かつ、実行時にはOracleEBSが必要であるのは、開発環境として何か間違っていないか?
ラベル:
Info:OracleEBS12
2011年9月20日火曜日
Size between JA16SJIS and JA16SJISTIDE remote connection
JA16SJISとJA16SJISTIDE、SJISとEUC等の間をDBリンクでリモート接続する場合、実はSELECT時のVARCHAR2やCharのサイズが2倍以上になる。但し、「_keep_remote_column_size」と呼ばれる隠しパラメータがデフォルト(true)で効いているので影響がない。
推奨は同一文字コード。 JA16SJISとJA16SJISTIDEもSJISはSJISだが、全く異なる文字コードである為、注意。
推奨は同一文字コード。 JA16SJISとJA16SJISTIDEもSJISはSJISだが、全く異なる文字コードである為、注意。
2011年9月19日月曜日
統計情報が欠落、陳腐化しているテーブル・インデックスオブジェクトは?
SELECT table_name FROM dba_tab_statistics
WHERE stale_stats = 'YES'
OR last_analyzed IS NULL;
INDEXの場合は、
WHERE stale_stats = 'YES'
OR last_analyzed IS NULL;
INDEXの場合は、
INDEX_NAMEで、DBA_IND_STATISTICS静的ビュー。他にも 有効な列情報はあるので、Case by Caseで追加。
2011年9月16日金曜日
FFFTP
少し前の話になるけれど、FFFTPの開発終了宣言が話題になっていました。もう15年前ぐらいかな、パートナー会社の方に使い方を教えてもらった時は、何がどうなっているかわからなかったけど、それ以来、便利便利とずっと使ってたもんな。オープンソース、フリーツールはダメという御客様でも、何故かTeraTermとFFFTPはイイみたいな独特の立ち位置。
これからも使い続けると思います。全く御会いしたこともない方ですが、長い間お疲れ様でした。
これからも使い続けると思います。全く御会いしたこともない方ですが、長い間お疲れ様でした。
登録:
投稿 (Atom)
