Using a resource reference to access your data source or connection factory is required when running in WebSphere Application Server - Express. Some of the reasons follow:
If a data source is looked up directly, the connection gets all default properties for the missing resource reference. For example, the sharing-scope is a shareable connection resulting in the possibility that the physical connection is the same each time the connection is requested from the data source. This situation can cause a multitude of problems if you expect unshareable connections.
It relieves the programmer from having to know the name of the actual data source at the target application server.
You can set the default isolation level for the data source through resource references. With no resource reference you get the default for the JDBC driver you use. For more information, see Isolation level and resource reference.
Use a resource reference (resource-ref) for looking up a data source through the standard Java Naming and Directory Interface (JNDI) naming interface. The JNDI name defined in the resource-ref is a logical name of the data source. Have your application use this JNDI name to look up a data source instead of using the JNDI name that is defined on the data source.
Later, you can substitute the real name during installation of the application EAR file onto the server.
For example, assume that you use a DataSource jdbc/Section as illustrated in the code below.
import javax.sql.*; import javax.rmi.*; ... DataSource specificDataSource = (DataSource) (new InitialContext()).lookup("java:comp/env/jdbc/Section");
Using the WebSphere Development Studio Client, specify the name (jdbc/Section) as the resource reference. If you know the name of the DataSource, specify it also. For more information, see the WebSphere Development Studio Client Help.