技术开发 频道

J2EE连接器开发实践之: J2EE连接器的开发

  DemoConnectionManager

  DemoConnectionManager是连接的管理器,它为资源适配器把连接请求传递给应用服务器提供了一个切入点。应用服务器实现DemoConnectionManager接口,这个实现不针对具体的资源适配器和连接工厂接口。DemoConnectionManager的任务就是分配连接。对于一些高级的应用,DemoConnectionManager通过和连接池交互来分配连接,在我们开发的这个案例中,DemoConnectionManager直接使用ManagedConnectionFactory来分配连接。ManagedConnectionFactory的代码如例程5所示。

  例程5 ManagedConnectionFactory的代码

1 package com.hellking.jca;
2 import java.io.Serializable;
3 import java.io.PrintWriter;
4 import javax.resource.ResourceException;
5 import javax.resource.spi.*;
6 public class DemoConnectionManager
7   implements ConnectionManager, Serializable
8 {
9     protected PrintWriter out;    
10     //分配一个连接
11     public Object allocateConnection (ManagedConnectionFactory managedConnectionFactory,
12 ConnectionRequestInfo connectionRequestInfo)
13     throws ResourceException
14       {
15          ManagedConnection managedConnection =
16          managedConnectionFactory.createManagedConnection(null, connectionRequestInfo);
17          return managedConnection.getConnection(null, connectionRequestInfo);
18       }
19     public void setLogWriter(java.io.PrintWriter out)
20     {
21           this.out =out;
22     }  
23 }
24
25

 

  DemoManagedConnectionMetaData

  DemoManagedConnectionMetaData提供了和ManagedConnection关联的后台EIS实例的信息。应用服务器通过这个接口来获得与它连接的EIS实例的运行环境信息。DemoManagedConnectionMetaData的代码如例程6所示。

  例程6 DemoManagedConnectionMetaData的代码

1 package com.hellking.jca;
2 import javax.resource.spi.*;
3 public class DemoManagedConnectionMetaData
4   implements ManagedConnectionMetaData
5 {
6     protected DemoManagedConnection demoManagedConnection;
7     
8     public DemoManagedConnectionMetaData (DemoManagedConnection demoManagedConnection)
9     {
10         this.demoManagedConnection = demoManagedConnection;
11     }    
12     //获得EIS的提供商
13     public String getEISProductName()
14     {
15       return "Hellking's Simple EIS server";
16     }    
17 //获得EIS产品的版本
18     public String getEISProductVersion()
19     {
20       return "Version 1.2";
21     }
22     //eis支持的最大连接数
23     public int getMaxConnections()
24     {
25       return 10000;  
26     }
27     public String getUserName()  
28     {
29         return "Hellking";
30     }
31 }
32
0
相关文章