asteria warp運用tips「rdb連携時のトラブルシューティング 」

41
. ASTERIA 運運 Tips RDB 運運運運運運運運運運運運運運運 運運運運運運運運運運運運運運運 イイイイイイイイイイイ ASTERIA イイイイ イイイイイ イ イ2016/02/23 ©1998-2017 Infoteria Corporation

Upload: asteria-user-group

Post on 13-Apr-2017

243 views

Category:

Technology


4 download

TRANSCRIPT

.

ASTERIA 運用 Tips「 RDB 連携時のトラブルシューティング コネクションの作成から運用まで!」

インフォテリア株式会社  ASTERIA 事業本部 製品技術部

車 淳一

2016/02/23©1998-2017 Infoteria Corporation

.

アジェンダ 2

©1998-2017 Infoteria Corporation

ASTERIA と RDB 連携処理における

コネクション作成時のトラブルシューティング

フローの作成とテスト時のトラブルシューティング

運用時のトラブルシューティング

01

02

03

.

©1998-2017 Infoteria Corporation

3

コネクション作成時のトラブルシューティング01

.

コネクション作成後、接続テスト時のエラー 4

©1998-2017 Infoteria Corporation

1. 「 No suitable driver found for ~ 」というエラー

.

コネクション作成後、接続テスト時のエラー

• 確認事項• JDBC ドライバーファイルが設置されているかを確認

• JDBC ドライバーの配置場所• ASTERIA WARP 4.9.1 以下の場合

[INSTALL_DIR]/jre/lib/ext

• ASTERIA WARP 1610 からは [DATA_DIR]/system/lib/drivers

※ デザイナーの「外部ライブラリの追加・削除」機能を使うと便利!

• 接続 URL が正しく設定されているかを確認• 空白文字に注意を!!

例えば、接続文字列の先頭に空白文字があるなど

• 設置後に FlowService を再起動したかを確認• JDBC ドライバーを設置した後にフローサービスの再起動を

忘れずに!

5

©1998-2017 Infoteria Corporation

.

コネクション作成後、接続テスト時のエラー 6

©1998-2017 Infoteria Corporation

.

コネクション作成後、接続テスト時のエラー 7

©1998-2017 Infoteria Corporation

2. コネクション作成時の他のエラー

.

コネクション作成後、接続テスト時のエラー

• 確認事項• ユーザー ID ,及びパスワードが間違ってないかを確認

• データベースツールなどで確認

• ネットワーク環境には問題ないかを確認• 接続文字列に間違いないかを確認

ちなみに、 Oracle の場合は、• Oracle11g 以下では

jdbc:oracle:thin:@<Hostname>:<Port>:<SID>

• Oracle12c ではjdbc:oracle:thin:@<Hostname>:<Port>/<ServiceName>

8

©1998-2017 Infoteria Corporation

.

コネクション作成後、接続テスト時のエラー 9

©1998-2017 Infoteria Corporation

.

コネクション作成後、接続テスト時のエラー

• 同じドライバークラスのドライバーの複数設置は行わない

• 複数あると最初に見つかったもののみが使用される

• 適切な JDBC ドライバーを使用する• RDB ベンダーが提供し、動作を保証する最新版を使用

• ASTERIA WARP にバンドルされている JavaVM のバージョンで動作確認された JDBC ドライバーを使用

• ASTERIA WARP 4.9 〜 1610 : Java 8• ASTERIA WARP 4.7 ~ 4.8.1 : Java 7• ASTERIA WARP 4.6 以下: Java 6

10

©1998-2017 Infoteria Corporation

CAUTION

.

コネクション作成後、接続テスト時のエラー

• 同じドライバークラスのドライバーの複数設置は行わない!

• JDBC ドライバーは正しい配置場所に設置を!• 接続文字列を指定するには間違いないようにご注意を!• 適確な JDBC ドライバーのご利用を!• JDBC ドライバーを設置した後にフローサービスの再起動を

忘れずに!

11

©1998-2017 Infoteria Corporation

コネクション作成時の注意点(まとめ)

.

©1998-2017 Infoteria Corporation

12

フローの作成とテスト時のトラブルシューティング02

.

フローの作成、およびテスト時のエラー 13

©1998-2017 Infoteria Corporation

1. SQL ビルダー画面でテーブル一覧が表示されない

.

フローの作成、およびテスト時のエラー

• 確認事項• 該当テーブルがログインユーザーの既定のデータベース内に

存在するかを確認• ログインユーザー名と該当テーブルのスキーマが同じで

あるかを確認• コネクションプールを利用する場合、 RDB 側の設定を

変更した時には、 FSMC でデータベース接続プールをクリアする必要がある

• ASTERIA WARP 4.8 以降FSMC > ツール > サービス > FlowService 画面

• ASTERIA WARP 4.7.1 以前FSMC > ツール > サービス > フロー画面

※ 特に接続先が SQLServer の場合、ご注意を!

14

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 15

©1998-2017 Infoteria Corporation

• コネクションの設定内容と RDB のスキーマを確認

.

フローの作成、およびテスト時のエラー 16

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー

• 複数のスキーマのテーブルを1つの RDBGetコンポーネントで JOIN して使いたい!

17

©1998-2017 Infoteria Corporation

Tip!!

.

フローの作成、およびテスト時のエラー

• 「 , 」で区切ってスキーマ名を設定

18

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 19

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 20

©1998-2017 Infoteria Corporation

2. RDBPut コンポーネントの Update/Insert 処理にて 一意制約エラーが発生する

.

フローの作成、およびテスト時のエラー

• 更新・登録するデータ側に何か問題が?特に問題なさそう。。。

21

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー

• テーブルの構成を確認

22

©1998-2017 Infoteria Corporation

CHAR 型だと「 abc 」が「 abc 」で登録されてしまう!!

.

フローの作成、およびテスト時のエラー

• 確認事項• キーフィールドのデータ型が固定長 (CHAR 型 ) で

あるかを確認

• 対応方法• CHAR 型ではなく VARCHAR 型を使用する• 予めスペースを補ったデータを RDBPut コンポーネントへ

マッピングする

23

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 24

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 25

©1998-2017 Infoteria Corporation

3. シーケンス作成時、 START 番号をパラメーターで 作成すると「 ORA-01722 」エラーとなる

.

フローの作成、およびテスト時のエラー

• 対応方法• ASTERIA WARP のパラメーター

• ? パラメーター名 ? : SQL パラメーター• $ パラメーター名 $ :置換文字列

• 今回の場合は、「 $ パラメーター名 $ 」を利用することで回避できる

26

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー 27

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー

• データベースによっては接続ユーザーとテーブルの所有ユーザー、若しくはスキーマ名が異なる場合があることに注意を!

• 固定長( CHAR 型)カラムの場合、指定文字数に満たないと不足分はスペースが補われて保存されることに注意を!

• ASTERIA WARP 側で提供する2つのパラメーターを適切に使うと便利!

28

©1998-2017 Infoteria Corporation

フロー作成とテスト時の注意点(まとめ)

.

©1998-2017 Infoteria Corporation

29

運用時のトラブルシューティング03

.

フローの作成、およびテスト時のエラー 30

©1998-2017 Infoteria Corporation

1. RDB の連携処理で OutOfMemory が発生する

.

フローの作成、およびテスト時のエラー

• 確認事項、および対応方法• 設定した最大メモリが不足していないかを確認→最大メモリを設定し直す

• RDBGet コンポーネントでループ処理をしているかを確認→「ループする」を「はい」に設定し、「取出す件数」を 適切な値に設定※ただし、処理がループされるので後続の処理は その分繰り返されることに注意が必要!

• ASTERIA が 4.5.1 以前で、データベースが MySQL の場合→接続文字列にフェッチサイズを指定する 例 ) jdbc:mysql://[hostname]:[port]/[dbname]?    useCursorFetch=true&defaultFetchSize=1000

31

©1998-2017 Infoteria Corporation

.

フローの作成、およびテスト時のエラー

• フローの構成、および対応策

32

©1998-2017 Infoteria Corporation

.

運用時のトラブルシューティング 33

©1998-2017 Infoteria Corporation

2. ASTERIA WARP の移行後、 RDB の連携処理で  OutOfMemory エラーが発生する

バージョンアップ

ASTERIA WARP 4.5.1 ASTERIA WARP 4.9.1

Out Of Memory エラー発生!!

Oracle 11g

.

運用時のトラブルシューティング

• JDBC ドライバー 11.1.0.6.0 での確認

34

©1998-2017 Infoteria Corporation

.

運用時のトラブルシューティング

• JDBC ドライバーで動作確認済みの Java バージョンの確認

35

©1998-2017 Infoteria Corporation

ASTERIA WARP 4.9.1 はJava8!!

.

運用時のトラブルシューティング

• JDBC ドライバーを Java8 用の 12.1.0.2.0 に変更

36

©1998-2017 Infoteria Corporation

.

運用時のトラブルシューティング

• メモリ使用量の確認

37

©1998-2017 Infoteria Corporation

JDBC ドライバー: 11.1.0.6.0

Java8用の JDBC ドライバー: 12.1.0.2.0

.

運用時のトラブルシューティング

• ちなみに、最大メモリを増やしてみると。。。

38

©1998-2017 Infoteria Corporation

[2017-02-11T21:10:57.631 JST] INFO [GetJDBCDriverData,FlowService.FlowService-Engine.worker.32] FLEX_I_0001: [4051db13-80fc-4e12-87c1-99b86a8aab08] フローの実行を開始します : /augtipswg.AUGTipsWG_20170223.GetJDBCDriverData [2017-02-11T21:15:14.717 JST] INFO [GetJDBCDriverData,FlowService.FlowService-Engine.worker.32] FLEX_I_0002: [4051db13-80fc-4e12-87c1-99b86a8aab08] フローの実行が終了しました : /augtipswg.AUGTipsWG_20170223.GetJDBCDriverData [257086ms]

・使用メモリ: 3GB

・処理時間: 4 分以上という結果に!!

.

運用時のトラブルシューティング

• 運用時に処理するデータ量が増える可能性を考慮し、適切な最大メモリの設定、およびフローの構成を!

• 適切な JDBC ドライバーのご利用を!

39

©1998-2017 Infoteria Corporation

運用時の注意点(まとめ)

.

他にも注意が必要な点

• JDBC Forward Only ドライバーに登録が必要な場合Amazon Redshift JDBC ドライバーを使うと「 [Amazon][JDBC](10220) ドライバが機能しません。」というエラーが発生しますhttps://support.asteria.com/hc/ja/articles/229384208

Oracle を使用して取得した文字列が途中で切れてしまいますhttps://support.asteria.com/hc/ja/articles/229382948

• JDBC ドライバーによってデータ登録結果が異なるOracle の DATE 型の値を取得すると時分秒の値が "00:00:00" となってしまいますhttps://support.asteria.com/hc/ja/articles/228983527

SQL Server から DATE 型で取得した日付が間違っていますhttps://support.asteria.com/hc/ja/articles/229383548

40

©1998-2017 Infoteria Corporation

CAUTION

.

Thank you!

©1998-2017 Infoteria Corporation