KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > jca > test > StaleConnectionCheckerUnitTestCase


1 package org.jboss.test.jca.test;
2
3 import java.sql.Connection JavaDoc;
4 import java.sql.SQLException JavaDoc;
5
6 import org.jboss.logging.Logger;
7 import org.jboss.resource.adapter.jdbc.StaleConnectionException;
8 import org.jboss.resource.adapter.jdbc.WrappedConnection;
9 import org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory;
10 import org.jboss.resource.connectionmanager.InternalManagedConnectionPool;
11 import org.jboss.resource.connectionmanager.JBossManagedConnectionPool;
12 import org.jboss.resource.connectionmanager.ManagedConnectionPool;
13 import org.jboss.resource.connectionmanager.NoTxConnectionManager;
14 import org.jboss.test.JBossTestCase;
15 import org.jboss.test.jca.jdbc.TestConnection;
16
17 public class StaleConnectionCheckerUnitTestCase extends JBossTestCase
18 {
19    Logger log = Logger.getLogger(PreFillPoolingUnitTestCase.class);
20
21    public StaleConnectionCheckerUnitTestCase(String JavaDoc name)
22    {
23       super(name);
24       
25    }
26    public void testNullStaleConnectionChecker() throws Exception JavaDoc
27    {
28     
29       LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
30       
31       mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
32       mcf.setConnectionURL("jdbc:jboss-test-adapter");
33       mcf.setStaleConnectionCheckerClassName("non-stale");
34       mcf.setExceptionSorterClassName("org.jboss.test.jca.support.MockExceptionSorter");
35       InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
36       pp.minSize = 1;
37       pp.maxSize = 2;
38       pp.blockingTimeout = 10000;
39
40       ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
41       NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
42       mcp.setConnectionListenerFactory(noTxn);
43       Connection JavaDoc conn = (Connection JavaDoc)noTxn.allocateConnection(mcf, null);
44       TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
45       uc.setFail(true);
46       
47       try
48       {
49          conn.createStatement().execute("blah");
50          
51       }catch(SQLException JavaDoc e)
52       {
53          //Normal
54
assertFalse("Should not be StaleConnectionException", e instanceof StaleConnectionException);
55          
56       }
57
58    }
59    
60    public void testNonStaleConnection() throws Exception JavaDoc
61    {
62       LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
63       
64       mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
65       mcf.setConnectionURL("jdbc:jboss-test-adapter");
66       mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerFalse");
67       mcf.setExceptionSorterClassName("org.jboss.test.jca.support.MockExceptionSorter");
68
69       InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
70       pp.minSize = 1;
71       pp.maxSize = 2;
72       pp.blockingTimeout = 10000;
73
74       ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
75       NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
76       mcp.setConnectionListenerFactory(noTxn);
77       Connection JavaDoc conn = (Connection JavaDoc)noTxn.allocateConnection(mcf, null);
78       TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
79       uc.setFail(true);
80       
81       try
82       {
83          conn.createStatement().execute("blah");
84          
85       }catch(SQLException JavaDoc e)
86       {
87          //Normal
88
assertFalse("Should not be StaleConnectionException", e instanceof StaleConnectionException);
89          assertTrue("Connection error should be fatal", mcp.getConnectionDestroyedCount() > 0);
90          
91       }
92       
93       assertTrue("Exception should be falal", mcp.getConnectionDestroyedCount() > 0);
94
95    }
96    
97    
98    public void testStaleConnection() throws Exception JavaDoc
99    {
100       
101       LocalManagedConnectionFactory mcf = new LocalManagedConnectionFactory();
102       
103       mcf.setDriverClass("org.jboss.test.jca.jdbc.TestDriver");
104       mcf.setConnectionURL("jdbc:jboss-test-adapter");
105       mcf.setStaleConnectionCheckerClassName("org.jboss.test.jca.support.MockStaleConnectionCheckerTrue");
106       InternalManagedConnectionPool.PoolParams pp = new InternalManagedConnectionPool.PoolParams();
107       pp.minSize = 1;
108       pp.maxSize = 2;
109       pp.blockingTimeout = 10000;
110
111       ManagedConnectionPool mcp = new JBossManagedConnectionPool.OnePool(mcf, pp, false, log);
112       NoTxConnectionManager noTxn = new NoTxConnectionManager(null, mcp);
113       mcp.setConnectionListenerFactory(noTxn);
114       Connection JavaDoc conn = (Connection JavaDoc)noTxn.allocateConnection(mcf, null);
115       TestConnection uc = (TestConnection)((WrappedConnection)conn).getUnderlyingConnection();
116       uc.setFail(true);
117       
118       try
119       {
120          conn.createStatement().execute("blah");
121          
122       }catch(SQLException JavaDoc e)
123       {
124          //Normal
125
assertTrue("Should be StaleConnectionException", e instanceof StaleConnectionException);
126          
127       }
128       
129       assertTrue("StaleConnectionException should not destroy connection", mcp.getConnectionDestroyedCount() == 0);
130       
131    }
132
133 }
134
Popular Tags