DemoConnectionFactoryImpl
DemoConnectionFactoryImpl也是和CCI相关的类,它实现了ConnectionFactory接口,它主要用于创建客户端要使用的虚拟连接(DemoConnection)。由于DemoConnectionFactoryImpl类需要在JNDI名字空间中注册,故它需实现Serializable和Referenceable接口。客户端查找DemoConnectionFactoryImpl类,然后使用这个类来获得到EIS的连接。DemoConnectionFactoryImpl代码如例程4所示。
例程4 DemoConnectionFactoryImpl的代码
1 package com.hellking.jca;
2 import javax.resource.*;
3 import javax.resource.spi.*;
4 import javax.resource.cci.*;
5 import javax.naming.*;
6 import java.io.*;
7 public class DemoConnectionFactoryImpl implements ConnectionFactory
8 {
9 protected Reference reference;
10 protected ManagedConnectionFactory manager;
11 protected ConnectionManager connectionManager;
12 protected PrintWriter out;//logOut
13
14 //构造方法
15 public DemoConnectionFactoryImpl (ManagedConnectionFactory manager,
16 ConnectionManager connectionManager)
17 {
18 this.manager = manager;
19 //如果连接管理器为空,那么创建一个新的连接管理器
20 if (connectionManager == null)
21 {
22 connectionManager = new DemoConnectionManager();
23 ((DemoConnectionManager)connectionManager).setLogWriter (out);
24 }
25 else
26 {
27 this.connectionManager = connectionManager;
28 }
29 }
30 //获得一个连接
31 public Connection getConnection() throws ResourceException
32 {
33 return (DemoConnection)
34 connectionManager.allocateConnection (manager, null);
35 }
36 //不支持此方法
37 public Connection getConnection(ConnectionSpec p) throws ResourceException
38 {
39 return null;
40 }
41 public void setReference(Reference ref)
42 {
43 reference = ref;
44 }
45 public Reference getReference()
46 {
47 return reference;
48 }
49
50 public void setLogWriter(PrintWriter _out)
51 {
52 out = _out;
53 }
54
55 public PrintWriter getLogWriter()
56 {
57 return out;
58 }
59 public RecordFactory getRecordFactory() throws ResourceException
60 {
61 return null;
62 }
63 public ResourceAdapterMetaData getMetaData()
64 {
65 return null;
66 }
67 }
68
69
2 import javax.resource.*;
3 import javax.resource.spi.*;
4 import javax.resource.cci.*;
5 import javax.naming.*;
6 import java.io.*;
7 public class DemoConnectionFactoryImpl implements ConnectionFactory
8 {
9 protected Reference reference;
10 protected ManagedConnectionFactory manager;
11 protected ConnectionManager connectionManager;
12 protected PrintWriter out;//logOut
13
14 //构造方法
15 public DemoConnectionFactoryImpl (ManagedConnectionFactory manager,
16 ConnectionManager connectionManager)
17 {
18 this.manager = manager;
19 //如果连接管理器为空,那么创建一个新的连接管理器
20 if (connectionManager == null)
21 {
22 connectionManager = new DemoConnectionManager();
23 ((DemoConnectionManager)connectionManager).setLogWriter (out);
24 }
25 else
26 {
27 this.connectionManager = connectionManager;
28 }
29 }
30 //获得一个连接
31 public Connection getConnection() throws ResourceException
32 {
33 return (DemoConnection)
34 connectionManager.allocateConnection (manager, null);
35 }
36 //不支持此方法
37 public Connection getConnection(ConnectionSpec p) throws ResourceException
38 {
39 return null;
40 }
41 public void setReference(Reference ref)
42 {
43 reference = ref;
44 }
45 public Reference getReference()
46 {
47 return reference;
48 }
49
50 public void setLogWriter(PrintWriter _out)
51 {
52 out = _out;
53 }
54
55 public PrintWriter getLogWriter()
56 {
57 return out;
58 }
59 public RecordFactory getRecordFactory() throws ResourceException
60 {
61 return null;
62 }
63 public ResourceAdapterMetaData getMetaData()
64 {
65 return null;
66 }
67 }
68
69