This devtest tries to test whether the appserver 
destroys the connection when it is marked as bad.

-------------------------------------------------------------------------------------
test1() READ_ONLY OPERATION TO DB
XA DataSource Name - "UnshareableDataSource"
ejb-descriptor - datasource is "unshareable"
Tx Attribute : NOT SUPPORTED
Pool - steady, max-pool-size : 5

Test1 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test1 passes when the monitoring information "num-conn-destroyed-count" is 5
Cumulative "destroyed" count - UnshareableDataSource(test1 ) : 5
-------------------------------------------------------------------------------------

test2() : WRITE OPERATION TO DB
XA DataSource Name - "UnshareableDataSource"
ejb-descriptor - datasource is "unshareable"
Tx Attribute : NOT SUPPORTED
Pool - steady, max-pool-size : 5

Test2 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test2 passes when the monitoring information "num-conn-destroyed-count" is 5
Cumulative "destroyed" count - UnshareableDataSource (test1 & test2 ) : 10
-------------------------------------------------------------------------------------

test3() : READ_ONLY OPERATION TO DB
XA DataSource Name - "ShareableDataSource"
ejb-descriptor - datasource is "shareable"
Tx Attribute : NOT SUPPORTED
Pool - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 ) : 5

Test3 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test3 passes when the monitoring information "num-conn-destroyed-count" is 5
-------------------------------------------------------------------------------------

test4() : WRITE OPERATION TO DB
XA DataSource Name - "ShareableDataSource"
ejb-descriptor - datasource is "shareable"
Tx Attribute : NOT SUPPORTED
Pool - steady, max-pool-size : 5

Test4 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test4 passes when the monitoring information "num-conn-destroyed-count" is 5
Cumulative "destroyed" count - ShareableDataSource(test4 ) : 10
-------------------------------------------------------------------------------------

test5() : READ_ONLY OPERATION TO DB
XA DataSource Name - "UnshareableDataSource"
ejb-descriptor - datasource is "Unshareable"
Tx Attribute : REQUIRED
Pool - steady, max-pool-size : 5
Cumulative "destroyed" count - UnshareableDataSource (test1 & test2 & test5 ) : 15

Test5 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test5 passes when the monitoring information "num-conn-destroyed-count" is 5
-------------------------------------------------------------------------------------


test6() : WRITE OPERATION TO DB
XA DataSource Name - "UnshareableDataSource"
ejb-descriptor - datasource is "Unshareable"
Tx Attribute : REQUIRED
Pool - steady, max-pool-size : 5
Cumulative "destroyed" count - UnshareableDataSource (test1 & test2 & test5 & test6 ) : 20

Test6 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test6 passes when the monitoring information "num-conn-destroyed-count" is 5
-------------------------------------------------------------------------------------


test7() : READ_ONLY OPERATION TO DB
XA DataSource Name - "ShareableDataSource"
ejb-descriptor - datasource is "Shareable"
Tx Attribute : REQUIRED
Pool - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource  (test3 & test4 & test7 ) : 11

Test7 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test7 passes when the monitoring information "num-conn-destroyed-count" is 1 since
the connection is shared within the transaction
-------------------------------------------------------------------------------------


test8() : WRITE OPERATION TO DB
XA DataSource Name - "ShareableDataSource"
ejb-descriptor - datasource is "Shareable"
Tx Attribute : REQUIRED
Pool - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 & test4 & test7 & test8 ) : 12

Test8 will retrieve connection from pool and mark it as bad. Iterates for 5 times.
Test8 passes when the monitoring information "num-conn-destroyed-count" is 1 since
the connection is shared within the transaction
-------------------------------------------------------------------------------------



test9() : WRITE-WRITE OPERATION TO DBs
Local - XA
WRITE - WRITE

XA DataSource Name      - "ShareableDataSource"
Local DataSource Name   - "LocalDataSource"
ejb-descriptors for both resources - datasource is "Shareable"
Tx Attribute : REQUIRED
Both Pools - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 & test4 & test7 & test8 & test9 ) : 13
Cumulative "destroyed" count - LocalDataSource (test9 ) : 1

Test9 will retrieve connection from pool and mark it as bad. Iterates once.
Test9 passes when the monitoring information "num-conn-destroyed-count" for
ShareableDataSource is 1  &
"num-conn-destroyed-count" for LocalDataSource is 1.
-------------------------------------------------------------------------------------


test10() : READ-WRITE OPERATION TO DBs
Local - XA
WRITE - WRITE

XA DataSource Name - "ShareableDataSource"
Local DataSource Name   - "LocalDataSource"
ejb-descriptors for both resources - datasource is "Shareable"
Tx Attribute : REQUIRED
Both Pools - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 & test4 & test7 & test8 & test9 & test10 ) : 14
Cumulative "destroyed" count - LocalDataSource (test9 & test10) : 2

Test10 will retrieve connection from pool and mark it as bad. Iterates once.
Test10 passes when the monitoring information "num-conn-destroyed-count" for
ShareableDataSource is 1  & "num-conn-destroyed-count" for LocalDataSource is 1.
-------------------------------------------------------------------------------------


test11() : READ-READ OPERATION TO DBs
Local - XA
READ - READ

XA DataSource Name - "ShareableDataSource"
Local DataSource Name   - "LocalDataSource"
ejb-descriptors for both resources - datasource is "Shareable"
Tx Attribute : REQUIRED
Both Pools - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 & test4 & test7 & test8 & test9 & test10 & test11 ) : 15
Cumulative "destroyed" count - LocalDataSource (test9 & test10 & test11) : 3

Test11 will retrieve connection from pool and mark it as bad. Iterates once.
Test11 passes when the monitoring information "num-conn-destroyed-count" for
ShareableDataSource is 1  & "num-conn-destroyed-count" for LocalDataSource is 1.
-------------------------------------------------------------------------------------


test12() : WRITE-READ OPERATION TO DBs
Local - XA
WRITE - READ

XA DataSource Name - "ShareableDataSource"
Local DataSource Name   - "LocalDataSource"
ejb-descriptors for both resources - datasource is "Shareable"
Tx Attribute : REQUIRED
Both Pools - steady, max-pool-size : 5
Cumulative "destroyed" count - ShareableDataSource (test3 & test4 & test7 & test8 & test9 & test10 & test11 & test12 ) : 16
Cumulative "destroyed" count - LocalDataSource (test9 & test10 & test11 & test12) : 4

Test12 will retrieve connection from pool and mark it as bad. Iterates once.
Test12 passes when the monitoring information "num-conn-destroyed-count" for
ShareableDataSource is 1  & "num-conn-destroyed-count" for LocalDataSource is 1.
-------------------------------------------------------------------------------------
