[jboss-user] [JCA/JBoss] - Re: issues with JCA minimum connections
tvbinh
do-not-reply at jboss.com
Mon Feb 18 18:06:31 EST 2008
Hi Vicky,
I don't have any problem with my <connection-factory-impl> class. It works nicely, I got all the properties that I want.
The problem is with JBoss loading the number of minimum connections as declared in -ds.xml file
<connection-factories>
| <no-tx-connection-factory>
| <jndi-name>SimplewireDS</jndi-name>
| <rar-name>65-mitto-ra-smpp.rar</rar-name>
| <connection-definition>
| com.smsc.mitto.ra.smpp.SMPPConnectionFactory
| </connection-definition>
| <config-property name="Name" type="java.lang.String">Mitto-1</config-property>
| <config-property name="Server" type="java.lang.String">192.168.2.115</config-property>
| <config-property name="Port" type="java.lang.Integer">9999</config-property>
| <config-property name="Username" type="java.lang.String">binh</config-property>
| <config-property name="Password" type="java.lang.String">binh</config-property>
| <min-pool-size>2</min-pool-size>
| <max-pool-size>4</max-pool-size>
| <idle-timeout-minutes>525600</idle-timeout-minutes> <!-- if idle for a year reconnect... -->
| <blocking-timeout-millis>100</blocking-timeout-millis>
| <prefill>true</prefill>
| </no-tx-connection-factory>
| </connection-factories>
With the above xml, I expect JBoss to automatically create 2 fully functional connections to 192.168.2.115 for me using other connection request infor provided. Though, when I try to use these 2 connections, I always got null pointer exception.
I debuged through JBoss codes and found that JBoss does not make use of the connection request information also declared in the -ds.xml like server, port, username, password etc, when it tries to create connections to satisfy this minumum connection properties (it does load the property in) .... The problem lies in the fillToMin method of InternalManagedConnectionPool class of JBoss, where it uses null for ConnectionRequestInfo when trying to make the connections. Could you please check that for me ?
Thank you very much for your help,
Best regards,
Binh
----------
defaultCRI is null in the below codes
public void fillToMin() {
| while (true) {
| // Get a permit - avoids a race when the pool is nearly full
| // Also avoids unnessary fill checking when all connections are
| // checked out
| try {
| if (permits.attempt(poolParams.blockingTimeout)) {
| try {
| if (shutdown.get())
| return;
|
| // We already have enough connections
| if (getMinSize()
| - connectionCounter.getGuaranteedCount() <= 0)
| return;
|
| // Create a connection to fill the pool
| try {
| ConnectionListener cl = createConnectionEventListener(
| defaultSubject, defaultCri);
| synchronized (cls) {
| if (trace)
| log.trace("Filling pool cl=" + cl);
| cls.add(cl);
| }
| } catch (ResourceException re) {
| log.warn("Unable to fill pool ", re);
| return;
| }
| } finally {
| permits.release();
| }
| }
| } catch (InterruptedException ignored) {
| log.trace("Interrupted while requesting permit in fillToMin");
| }
| }
| }
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4130247#4130247
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4130247
More information about the jboss-user
mailing list