|
| 以下は、TGおよびTGCにて確認されているBUGの一覧です。 |
|
: |
TGC(GUI)がローカルのTGへの接続に失敗する |
|
: |
リモートのTGとの切断時にTGCにエラーメッセージが出力される |
|
: |
TGCの"TPS Monitor"の改行出力が不正になる |
|
: |
TGCからローカルのTGを起動する際、不正なメッセージが表示される |
|
: |
Listenerモードで動作するTGが受信したコマンドを不正に処理する場合がある |
|
: |
MultiServer構成でMasterServerのCPU使用率が高騰する |
|
: |
CONNECT ALL/DISCONNECT ALLコマンド実行時、SlaveサーバのAgentの処理完了を待たずにTGのプロンプトが戻される |
|
: |
パラメータ「DRIVER_TYPE」にOCIまたはOCI8を指定した場合、Agentがデータベースに接続できない |
|
: |
TGCの「Configure agents...」編集画面にて、各種名前(乱数名・トランザクション名・Job名)に関する誤った重複エラーが出力される |
|
: |
int型のカラムを持つテーブルへのアクセス時にエラー「ERROR: current transaction is aborted...」が発生する |
|
: |
パラメータ「JDBC_URL」使用時、HOSTNAMEやSID_NAMEが指定されていない旨のエラーが発生する |
|
: |
TGとTGCのコンフィグレーションの同期時にTGCが一時的にハングしたような状態となる |
|
: |
Agentのステータス情報やトランザクションのスループット情報を確認する際にTGCがハングしたような状態になり、CPU使用率が高騰する |
|
: |
TGC起動時にエラー「java.lang.UnsatisfiedLinkError: no swt-win32-3236」が発生する |
|
: |
TGCで使用されているTGウェブサイトのURLが誤っている |
|
: |
TGCからTGへの接続確認後、TGへの接続が不正になる |
|
: |
TGをコマンドラインモードで実行中にVERBOSEモードを使用するとTGが異常終了する |
|
: |
TGC(GUI)の画面にて「TPS Monitor」タブをクリックするとTGCが異常終了する |
|
: |
コマンド「show status transactions」の結果が不正となる |
|
: |
ジョブ(JOB_TYPE:SQL)実行後、該当ジョブのセッションが不正に残った状態になる |
|
: |
TGの接続(セッション)確立処理がシーケンシャルに処理される |
|
: |
LIST型VARIABLEに195を超える値を登録すると、エラー「AgentID:X EROR: Recieved Exception : java.lang.ArrayIndexOutOfBoundsException」が発生する |
|
[対象となる環境]
TGがLinux等のWindows以外の環境で実行されており、Listener modeを使用してTGC(TG Controller)と通信している。
[事象の詳細]
TGC(TG Controller)の画面が以下のエラーメッセージを出力し、異常終了することがあります。
java.lang.IllegalArgumentException: Index out of bounds
at org.eclipse.swt.SWT.error(SWT.java:2677)
at org.eclipse.swt.SWT.error(SWT.java:2616)
at org.eclipse.swt.SWT.error(SWT.java:2587)
at org.eclipse.swt.custom.StyledText.getText(StyledText.java:4387)
at tgc$messageWriter.deleteOverflowedlines(tgc.java:8406)
at tgc$messageWriter.run(tgc.java:8137)
at org.eclipse.swt.widgets.Display.runTimer(Display.java:2814)
at org.eclipse.swt.widgets.Display.messageProc(Display.java:2196)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1473)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2429)
at tgc.<init>(tgc.java:1490)
at tgc.main(tgc.java:348)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
[原因]
TGの改行コード(Linux:LF)の処理に問題があり、TGC側(Windows:CR,LF)で存在しないメッセージバッファを参照しようとすることがあります。
[回避策]
- 回避策1 : TGとTGCを同一OS環境(Windows)で使用する。
- 回避策2 : TGCを使用せず、Command-line modeにてTGを使用する。
[修正]
Version 0.71にて修正を行いました。 |
・概要 |
: |
TGC(GUI)がローカルのTGへの接続に失敗する |
|
[事象の詳細]
TGC(TG Controller)から「Startup TG (in local-host)」機能を使用し、ローカルのTGを起動した場合、通常はTG Consoleに以下のメッセージを出力した後自動的にTGへ接続しますが、この接続に失敗する場合があります。
※TGC起動時のTG Console出力内容
===========================================================================
TG - Transaction Generator - [ Version 0.70 ] Thu Mar 29 22:58:20 JST 2007
Loading Oracle JDBC driver... .OK.
Checking specified address & Port is possible to use... .OK.
Now TG is running in "Slave Mode".
- Listening Address : 0.0.0.0
- Port : 11111
<ここまでメッセージが出力され、ローカルのTGへの接続に失敗します>
===========================================================================
[原因]
TGCはTGとの接続時にTGのIPアドレスとPort番号を記憶し、次回TGへの接続時にも同一のアドレス・Port番号へ接続を試みます。これは例えば、以下のようなケースに該当した場合、TGCは存在しないノードへの接続を試みることになり、TCP/IPのタイムアウトを待った後、接続に失敗します。
1. TGC(Server.Aにて実行) から TG(Server.Bにて実行)に接続して処理を実行
2. TGCとTGのコネクションを切断
3. Server.BのOSを停止
4. TGC(Server.A)にて「Startup TG (in local-host)」を実行
5. TGCは存在しないTG(Server.B)に接続を試みる
[回避策]
接続に失敗した後、「Specify and connect to TG...」機能を使用し、適切なアドレス・Port番号を指定して、ローカルのTGへ再度接続してください。
[修正されたバージョン]
Version 0.71にて修正を行いました。 |
・概要 |
: |
リモートのTGとの切断時にTGCにエラーメッセージが出力される |
|
[事象の詳細]
TGCから「Disconnect from TG
」機能を使用してリモートのTGから切断する際、正常に切断したにもかかわらず、TGCの"System event monitor"にエラーメッセージ「Connection with TG was broken unexpectedly」が出力される場合があります。
[原因]
TGC内部におけるTGとの接続ステータス処理に問題があるためです。
[回避策]
該当メッセージを無視してください。
[修正]
Version 0.72にて修正を行いました。 |
・概要 |
: |
TGCの"TPS Monitor"の改行出力が不正になる |
|
[事象の詳細]
リモートのTGに接続して処理を行っている際、TGCの"TPS monitor"の改行出力が不正になる場合があります。
※正常時
===========================================================================
00:16:33 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:34 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:35 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:36 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
・・以下省略・・
===========================================================================
※異常時(1行多く改行されて出力される)
===========================================================================
00:16:33 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:34 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:35 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
00:16:36 AgS:DISC Act:0/10 SES:0/10 ErD:0/10 ERR:0 TPS:0
・・以下省略・・
===========================================================================
[原因]
TGCのメッセージ処理ロジックの問題のためです。
[回避策]
リモートのTGから一旦切断し、再接続すると事象が回避できる場合があります。
[修正]
Version 0.72にて修正を行いました。 |
・概要 |
: |
TGCからローカルのTGを起動する際、不正なメッセージが表示される |
|
[事象の詳細]
TGCからローカルのTGを起動する際、TGの起動メッセージが不正に表示されることがあります。
※正常時
===========================================================================
TG - Transaction Generator - [ Version 0.72 ] Thu Apr 12 22:09:30 JST 2007
Loading Oracle JDBC driver... OK.
Checking specified address & Port is possible to use... .OK.
Now TG is running in "Slave Mode".
- Listening Address : 0.0.0.0
- Port : 11111
TG - Transaction Generator - [ Version 0.72 ] Thu Apr 12 22:09:35 JST 2007
logged in.
TG>
===========================================================================
※異常時(「:TGSrvMsg...」の部分が不正出力です)
===========================================================================
TG - Transaction Generator - [ Version 0.72 ] Thu Apr 12 22:09:30 JST 2007
:TGSrvMsgBgn:0:CONS:INFO:00000030:Loading Oracle JDBC driver... :TGSrvMsgBgn:0:CONS:INFO:00000001:.:TGSrvMsgBgn:0:CONS:INFO:00000005:OK.
:TGSrvMsgBgn:0:CONS:INFO:00000002:
Checking specified address & Port is possible to use... .OK.
Now TG is running in "Slave Mode".
- Listening Address : 0.0.0.0
- Port : 11111
TG - Transaction Generator - [ Version 0.72 ] Thu Apr 12 22:09:35 JST 2007
logged in.
TG>
===========================================================================
[原因]
TGCのメッセージ処理ロジックに問題があり、TGからの制御コードをそのまま画面(TG Console)に出力してしまうことがあるためです。
[回避策]
該当メッセージを無視してください。
[修正]
Version 0.72にて修正を行いました。 |
・概要 |
: |
Listenerモードで動作するTGが受信したコマンドを不正に処理する場合がある |
|
[事象の詳細]
Listenerモードで動作するTGが、TGCとのコンフィグレーションの同期(Synchronize configuration...)時などに異常終了・ハングアップすることがあります。また、本現象はMultiServer構成におけるSlaveServerでも同様に発生します。
[原因]
Listenerモードで動作するTGのメッセージ処理ロジックに問題があり、TGCもしくはMasterServer(MultiServer構成時)から受信したコマンドを正常に処理できない場合があるためです。
[回避策]
以下のすべての条件を満たしてTGを利用する際、本現象は発生しません。
- TGをCommand-Lineモードで使用する
- MultiServer構成を使用しない
[修正]
Version 0.72にて修正を行いました。 |
・概要 |
: |
MultiServer構成でMasterServerのCPU使用率が高騰する |
|
[事象の詳細]
MultiServer構成にて、MasterServerとSlaveServer間で接続/切断(MasterServer機能のON/OFF、Synchronize configuration...の実行)を繰り返すと、MasterServer側のCPU使用率が高騰します。
[原因]
TGのメッセージ処理ロジックに問題があります。MasterServerはSlaveServerとの接続確立後、SlaveServerからのメッセージ受信を別スレッドで処理しますが、切断時にこのスレッドの開放を正常に行わないためです。
[回避策]
本現象はMultiServer構成使用時のみ発生します。MasterServerのCPU使用率が高騰した際にMasterServerの再起動を行うことで、本現象を回避することができます。
[修正]
Version 0.72にて修正を行いました。 |
|
[事象の詳細]
TGCの「Configure TG...」画面や「Configure agents」画面にて"TG Servers"や"Variables"などのツリー画面編集時、TGCが異常終了することがあります。
[原因]
TGCの内部処理ロジックの問題のためです。
[回避策]
本現象は、ツリー内のオブジェクトをCTRLキーを押したままクリックし、何もオブジェクトが選択されていない状態になった場合に発生します。よって、CTRLキーを使用した操作を行わなければ、本現象は発生しません。
[修正]
Version 0.80にて修正を行いました。 |
・概要 |
: |
CONNECT ALL/DISCONNECT ALLコマンド実行時、SlaveサーバのAgentの処理完了を待たずにTGのプロンプトが戻される |
|
[事象の詳細]
TGのコマンド「connect all」、「disconnect all」は、"sessions"パラメータで指定されたすべてのAgentがデータベースへ接続(切断)するまでプロンプトを戻さない動作を想定していますが、MultiServerモードを使用している場合、SlaveサーバぶんのAgentの接続(切断)動作が無視されます。
[原因]
TGの内部処理ロジックの問題のためです。
[回避策]
本現象はMultiServerモード使用時にのみ発生します。従って、MultiServerモードを使用していなければ、本現象は発生しません。
[修正]
Version 0.82にて修正を行いました。 |
|
[事象の詳細]
TGCのログファイルである「tgc.log」が以下のエラーメッセージを出力し、急激に肥大化することがあります。
===========================================================================
XXX XXX XX XX:XX:XX XXX XXXX
ERROR occured at deleteOverflowedlines.
java.lang.IllegalArgumentException: Index out of bounds
================
OFFSET : XXX
SYSRET : 0d0a
LINES : XXXX
MxLINES : XXXX
===========================================================================
[原因]
TGCでは「TG Console」や「TPS Monitor」などの画面のバッファサイズが設定値(メニュー"TGC" > "Setup TGC..."の"Scroll buffer"にて指定)を超えた場合、超えたぶんの行を削除する処理を行いますが、この処理に問題があります。
[回避策]
ありません。なお、本現象が発生した場合でも、TGそのものは動作し続けているため、TGCを再起動し、再度TGに接続してください。
[修正]
現在問題原因の詳細を調査中です。
|
・概要 |
: |
パラメータ「DRIVER_TYPE」にOCIまたはOCI8を指定した場合、Agentがデータベースに接続できない |
・概要 |
: |
TGCの「Configure agents...」編集画面にて、各種名前(乱数名・トランザクション名・Job名)に関する誤った重複エラーが出力される |
|
[事象の詳細]
TGCの「Configure agents」画面の「Variables」・「Transactions」・「Jobs」タブでは、それぞれ乱数名・トランザクション名・Job名など各種名前の編集を行うことができますが、編集中に実際は重複していないにもかかわらず、名前の重複エラーが出力されることがあります。
※エラーの出力例)
- The same variable name exists.
[原因]
TGCの内部処理ロジックの問題のためです。「Configure agents...」画面にて各種名前の編集後「Cancel」を選択し、 再度「Configure agents」画面を開いた際、キャンセルされたはずの編集内容がバッファ内に不正に残ってしまうことがあります。
[回避策]
再度TGCのコンフィグレーションファイル「*.tgp」をロードしなおすか、TGCの再起動を行ってください。
[修正]
Version 0.84にて修正を行いました。 |
・概要 |
: |
int型のカラムを持つテーブルへのアクセス時にエラー「ERROR: current transaction is aborted...」が発生する |
|
[事象の詳細]
負荷がけ対象のデータベースにPostgreSQLを使用しており、以下の条件に該当する場合、トランザクション実行中に「ERROR: current transaction is aborted, commands ignored until end of transaction block」が発生することがあります。
・JDBCドライバに「PostgreSQL 8.0以降」を使用している
・アクセス対象となるテーブルにinteger形のカラムが含まれている
・TGの乱数で数値を生成するもの(Number形、List型、AgentIDなど)を使用している
[原因]
TGが使用しているJDBCのAPIに問題があります。TGではSQL文中のパラメータのバインド("?"への値のセット)にすべて「setString」メソッドを使用しています。PostgreSQL 8.0よりも前のドライバは、setStringの値に数値を指定した場合でも内部的に型変換(数値⇒文字列)を行っていましたが、8.0以降ではこの動作を行わなくなりました。
[回避策]
PostgreSQL 8.0よりも以前のJDBCドライバを使用する
[修正]
Version 0.84にて修正を行いました。 |
・概要 |
: |
パラメータ「JDBC_URL」使用時、HOSTNAMEやSID_NAMEが指定されていない旨のエラーが発生する |
・概要 |
: |
TGとTGCのコンフィグレーションの同期時にTGCが一時的にハングしたような状態となる |
|
[事象の詳細]
TGとTGCとのコンフィグレーションの同期時にTGCが下記のメッセージを出力し、一時的にハングしたような状態となります。
※"TG Console"の出力例)
TG> reload config
Loading configuration file... .OK.
Registered transactions:0 , variables:0 , jobs:0 , slave servers:0
TG> freeze
TGC messagebuffer overflowed. Agents was temporarily freezed.
TG> unfreeze
Agents was restarted.
TG>
※"System Event Monitor"の出力例
TGC Too many message recieved. freeze agent activity temporary.
[原因]
TGとTGC間のメッセージの処理方法に問題があります。TGバージョン0.84より、TGはTGCとのコンフィグレーションの同期時に、全Agentのステータス情報をTGCに通知するようになりましたが、Agentの接続数(パラメータ:SESSIONS)が多い場合、TGCのメッセージ処理に時間がかかってしまい、一時的にTGCがハングしたような状態になります。
[回避策]
本現象はTGをコマンドラインモードで使用する場合には発生しません。またTGCを使用している場合に本現象の回避策はありませんが、パラメータ「SESSIONS」の数値が小さい場合(もしくはTGCを実行しているホストのCPU性能が高い場合)、本現象は表面化しません。
[修正]
Version 0.85にて修正を行いました。
|
・概要 |
: |
Agentのステータス情報やトランザクションのスループット情報を確認する際にTGCがハングしたような状態になり、CPU使用率が高騰する |
|
[事象の詳細]
TGCのメニュー「Agent > Show agent status」や「Monitor > Throughput statistics > Show details」(TGをコマンドラインモードで利用している際には、コマンド「show status agent」、「show throughput details」)を実行する際、TGがハングしたような状態となり、TGを実行しているホストのCPU使用率が高騰する場合があります。
[原因]
TGの内部処理方法に問題があります。該当コマンドをTGが処理する場合、全Agentのステータス情報の集計を行いますが、Agentの接続数(パラメータ:SESSIONS)が多い場合、この集計処理に非常にCPUを消費する場合があります。
[回避策]
ありません。ただし、パラメータ「SESSIONS」の値が小さい場合や、TGを実行しているホストのCPU性能が高い場合、本現象は表面化しません。
[修正]
現在問題原因の詳細を調査中です。 |
・概要 |
: |
TGC起動時にエラー「java.lang.UnsatisfiedLinkError: no swt-win32-3236」が発生する |
|
[事象の詳細]
TGC終了時にTGを併せて終了させるよう(メッセージ「Now terminating TG Controller. Terminate TG server together? > YES」)選択しても、TGが終了しない場合があります。
[原因]
TGCの内部処理方法に問題があります。TGC終了時にTGを併せて終了させる場合、TGCはTGにコマンド「terminate」を発行してから終了するよう設計されていますが、コマンド発行前にTGCが終了してしまうことがあります。
[対策]
TGCのメニュー「TG > Shutdown TG」を選択してTGを終了させてから、TGCを終了させてください。
[修正]
Version 0.86にて修正を行いました。 |
・概要 |
: |
TGCで使用されているTGウェブサイトのURLが誤っている |
|
[事象の詳細]
TGCの以下の機能にて使用されているTGウェブサイトのURLが誤っています。
- "Help" > "Go to TG website"でブラウザが接続しようとするURL
- "Help" > "Help"機能で表示されるURL
[原因]
TGのウェブサイトのURLが変更になったためです。該当URLは2008/11/29に「www.tgnr.net」から「www.transactiongenerator.com」に変更になりました。
[対策]
ありません。手動にて上記新URLを参照してください。
[修正]
Version 0.86にて修正を行いました。 |
・概要 |
: |
TGCからTGへの接続確認後、TGへの接続が不正になる |
|
[事象の詳細]
TGCのメニュー「TG > Specify and connect to TG」を選択し、「Specify and connect to TG」画面にて"TRY"を使用してTGへの接続確認を行った後、"OK"を押下しTGに接続すると以下のメッセージが表示され、TGCとTG間の接続が不正になる場合があります。
===============================================================================
:TGSrvMsgBgn:0:CMND:TGCN:00000001:0:TGSrvMsgBgn:0:EVNT:INFO:00000064:Input linefeed string of the current terminal was set to "0d0a".:TGSrvMsgBgn:0:EVNT:INFO:00000065:Output linefeed string of the current terminal was set to "0d0a".TG - Transaction Generator - [ Version 0.86 ] Sat Jan 03 12:16:53 JST 2009
logged in.
TG>
===============================================================================
[原因]
TGCの内部処理方法に問題があります。
[対策]
ありません。「Specify and connect to TG」画面にて"TRY"機能を使用しなければ、本現象は発生しません。
[修正]
Version 0.86にて修正を行いました。 |
・概要 |
: |
TGをコマンドラインモードで実行中にVERBOSEモードを使用するとTGが異常終了する |
|
[事象の詳細]
TGをコマンドラインモード(command-line mode)で実行中にVERBOSEモードの操作(コマンド:verbose on/offなど)を行うと、TGが以下のエラーメッセージを出力し、異常終了します。
===============================================================================
ERROR : Transaction generator has terminated with unexpected errors. See logfile.
===============================================================================
[原因]
TGの内部処理方法に問題があります。
[対策]
ありません。コマンドラインモードでVERBOSEコマンドを使用しないか、もしくはTGをコマンドラインモード以外(server mode)で実行すれば本現象は発生しません。
[修正]
Version 0.86にて修正を行いました。 |
・概要 |
: |
TGC(GUI)の画面にて「TPS Monitor」タブをクリックするとTGCが異常終了する |
・概要 |
: |
コマンド「show status transactions」の結果が不正となる |
|
[事象の詳細]
TGのコマンド「show status transactions」の結果の一部が不正となります。該当するのは「ERROR(ERROR per second)」と「TPS(Transaction Per Second)」です。結果は常に"0"となります。
===============================================================================
TG> show status transactions
-- TRANSACTION STATUS --------------------------------
GENERAL
~~~~~~~
- CURRENT TIME : Thu Jul 16 00:08:00 JST 2009
- TARGET AGENT STATUS : ACTIVE
CURRENT AGENT STATUS (SUMMARY)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- CONNECTED : 30/30
- DISCONNECTED : 0/30
- TERMINATED : 0/30
ERROR and TPS
~~~~~~~~~~~~~
- ERROR(ERROR per second) : 0 ←※該当箇所
- TPS(Transaction Per Second) : 0 ←※該当箇所
TG>
===============================================================================
[原因]
TGの内部処理方法に問題があります。
[対策]
ありません。該当コマンドを使用せず「monitor」コマンドを使用してトランザクション統計情報を取得してください。
[修正]
Version 0.91にて修正を行いました。 |
・概要 |
: |
ジョブ(JOB_TYPE:SQL)実行後、該当ジョブのセッションが不正に残った状態になる |
|
[事象の詳細]
ジョブ(JOB_TYPE:SQL)の実行後、該当ジョブが正常に終了しているにもかかわらず、不正にセッションが残った状態となります。以下に本現象が発生した際のエラーのサンプルを示します:
===============================================================================
※本サンプルではデータベースに「SQL Server」を使用し、ログイン「test」を作成し、該当ログインを使用するジョブを実行完了後、該当ログインを削除しようとするとエラーが発生しています。
TG> execute job 1
>> Execute job No : 1 [ 0.CREATE_DATABASE ]
- JOB_NAME : 0.CREATE_DATABASE
- JOB_TYPE : SQL
- EXEC_FILE : e:\__\java\_lastr~2\jobs\$TGSCRIPT0.tgs
SQL No.0 : create database testdb
System altered.
SQL No.1 : create login test with password='test', DEFAULT_DATABASE=testdb
System altered.
↑※ログイン「test」作成
SQL No.2 : commit
Commit complete.
SQL No.3 : call master.sys.sp_addsrvrolemember('test','sysadmin')
Procedure executed.
Specified job successfully executed.
TG> execute job 2
>> Execute job No : 2 [ 1.BUILD_SCHEMA ]←※本ジョブは、ログイン「test」を使用して実行
- JOB_NAME : 1.BUILD_SCHEMA
- JOB_TYPE : SQL
- EXEC_FILE : e:\__\java\_lastr~2\jobs\$TGSCRIPT1.tgs
SQL No.0 : create user test for login test with default_schema=testdb
System altered.
SQL No.1 : commit
Commit complete.
Specified job successfully executed.
TG> execute job 3
>> Execute job No : 3 [ 3.DROP_SCHEMA ]←※本ジョブは、ログイン「test」を使用して実行
- JOB_NAME : 3.DROP_SCHEMA
- JOB_TYPE : SQL
- EXEC_FILE : e:\__\java\_lastr~2\jobs\$TGSCRIPT2.tgs
SQL No.0 : drop user test
System altered.
SQL No.1 : commit
Commit complete.
Specified job successfully executed.
TG> execute job 4
>> Execute job No : 4 [ 4:DROP_DATABASE ]
- JOB_NAME : 4:DROP_DATABASE
- JOB_TYPE : SQL
- EXEC_FILE : e:\__\java\_lastr~2\jobs\$TGSCRIPT3.tgs
SQL No.0 : drop login test
com.microsoft.sqlserver.jdbc.SQLServerException: ユーザーが現在ログインしているので、ログイン 'test' を削除できませんでした。 ←※ログイン「test」の削除に失敗
SQL No.1 : commit
Commit complete.
SQL No.2 : drop database testdb
com.microsoft.sqlserver.jdbc.SQLServerException: データベース "testdb" は現在使用中なので削除できません。
Error occured while executing a job.
TG>
===============================================================================
[原因]
TGの内部処理方法に問題があります。
[対策]
ありません。本現象が発生した場合にはTGの再起動を行うことで、該当セッションをクリアすることが可能です。
[修正]
Version 0.91にて修正を行いました。 |
・概要 |
: |
TGの接続(セッション)確立処理がシーケンシャルに処理される |
|
[事象の詳細]
仮想クライアント(Agent)のデータベースへの接続(セッション)確立処理は、TGの仕様としてパラレルで処理することを想定していましたが、実際には本処理がシーケンシャルに実行されます。
具体的には以下の動作となります:
===============================================================================
■TGの仕様として想定されていた動作
※パラメータ「SESSIONS」が「10」に設定されていることとします。
・コマンド「CONNECT」発行
⇒10個のAgentがすべて同時に接続処理を開始
■実際の動作
※パラメータ「SESSIONS」が「10」に設定されていることとします。
・コマンド「CONNECT」発行
⇒ひとつめのAgentが接続処理を開始し、該当処理を完了
⇒ふたつめのAgentが接続処理を開始し、該当処理を完了
⇒(同様の処理を10番目のAgentまで繰り返し)
===============================================================================
(補足)
TGではひとつひとつのAgentが独立して接続を確立します。従って10個のAgentを生成した場合、データベースへの接続数は10になります。複数のAgent間でひとつの接続を共有する動作は行いません。
[原因]
TGの内部処理方法に問題があります。Agent(実体はJavaのスレッドです)がパラレルにデータベースへの接続を確立する場合、JDBCの接続メソッドとして"Driver.connect()"メソッドを使用する必要がありますが、実際には"DriverManager.getConnection()"メソッドが使用されており、このため接続確立処理がシーケンシャルに実行されます。
[対策]
ありません。
[修正]
Version 0.92にて修正を実施しました。 新パラメータ「MAX_CONCURRENT_CONNECTIONS」を参照してください。 |
・概要 |
: |
LIST型VARIABLEに195を超える値を登録すると、エラー「AgentID:X EROR: Recieved Exception : java.lang.ArrayIndexOutOfBoundsException」が発生する |
|
[事象の詳細]
リスト型変数(「LIST_INTEGER」もしくは「LIST_STRING」)に195を超える値を登録すると以下のエラーが非常に高い頻度で発生します。
===========================================================================
23:36:51 AgentID:0 EROR: Recieved Exception: java.lang.ArrayIndexOutOfBoundsException: 748
23:36:51 AgentID:0 EROR: attempt to reconnect (ERROR_RECONNECT_COUNT:2/5, ERROR_RECONNECT_WAIT:10000 msec).
23:36:52 AgentID:6 EROR: Recieved Exception: java.lang.ArrayIndexOutOfBoundsException: 355
23:36:52 AgentID:6 EROR: attempt to reconnect (ERROR_RECONNECT_COUNT:3/5, ERROR_RECONNECT_WAIT:10000 msec).
23:36:52 AgentID:1 EROR: Recieved Exception: java.lang.ArrayIndexOutOfBoundsException: 960
23:36:52 AgentID:1 EROR: attempt to reconnect (ERROR_RECONNECT_COUNT:3/5, ERROR_RECONNECT_WAIT:10000 msec).
===========================================================================
[原因]
TGの内部処理方法に問題があります。TG ver 0.92では、LIST型変数に登録可能な値の数の最大値を1024に変更しましたが、実際には195を超える値を登録した場合、正常に処理することができません。
[対策]
値の設定数が195個以内である場合、本現象は発生しません。
[修正]
暫定パッチを作成しました。以下の手順にてパッチを入手・適用頂くことができます:
********************************************************************************
■パッチの入手・適用方法
※TGのバージョン「0.92」がインストールされていることを前提とします。
※パッチの適用は、TGを停止させた状態で行ってください。
@以下のURLより、パッチをダウンロードしてください:
http://www.transactiongenerator.com/v2/content-j/download/tg092_patch_1.html
AダウンロードしたZIPファイルを展開すると、以下のファイルが作成されます。
- tg.jar : 151,017Bytes
A上記ファイルを既存のTGのバイナリに上書きします。
パッケージ「tg092wj-setup.exe」を使用している場合、該当フォルダは
「C:\Program Files\Transaction Generator\0.92\」です。
BTGを起動します。起動時のメッセージに「0.92 patch 1」と表示されます。
===============================================================
Transaction Generator 0.92 patch 1 XXX XXX XX XX:XX:XX JST XXXX
===============================================================
以上でパッチの適用は完了です。
******************************************************************************** |
|