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
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
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