¿Cómo me conecto a una fuente de datos de Websphere con un nombre JNDI dado?

Estoy usando Websphere Portal 7.0 y estoy creando un portlet con RAD 8.0. Mi portlet está intentando hacer una conexión db2 a un servidor remoto. Escribí un programa Java localmente para hacer una conexión JDBC básica con el servidor y obtener registros de una tabla. El código funciona bien; sin embargo, cuando agrego el código a mi portlet, así como al db2jcc4.jar, la conexión no funciona. Estoy usando el básico:

Connection connection = DriverManager.getConnection("jdbc:db2://server:port/db:user=user;password=pw;");

Creo que usar el origen de datos de Websphere es el camino correcto. Sé el nombre JNDI para la fuente de datos, pero no encuentro ejemplos claros sobre cómo hacer una conexión. Varios ejemplos usan una clase DataSource (escribí esto y no parece que provenga de un paquete nativo de Java, entonces, ¿qué importación uso aquí?) Junto con un Contexto. Me he encontrado con código como:

Context ctx = new InitialContext();
ctx.lookup("jdbc/xxxx");

... ¿Alguien puede romper esto por mí?

EDIT 1

He actualizado mi código según las respuestas enumeradas. Realmente creo que me estoy acercando. Aquí está mi método getConnection ():

private Connection getConnection() throws SQLException {
    javax.naming.InitialContext ctx = null;
    javax.sql.DataSource ds = null;
    System.out.println("Attempting connection..." + DateUtil.now() );
    try {
        ctx = new javax.naming.InitialContext();
        ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/db");
        connection = ds.getConnection();
    } catch (NamingException e) {
        System.out.println("peformanceappraisalstatus: COULDN'T CREATE CONNECTION!");
        e.printStackTrace();
    }       
    System.out.println("connection: " + connection.getClass().getName() + " at " + DateUtil.now());
    return connection;
}

Mi archivo web.xml completo se ve así:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>PeformanceAppraisalStatus</display-name>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>
    <resource-ref>
        <description>
        Datasource connection to Db</description>
        <res-ref-name>jdbc/db</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
        <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
</web-app>

Estoy viendo un error que describe exactamente lo que ustedes me dicen que Websphere debería pedirme que haga, pero no:

SRVE0169I: Loading Web Module: PeformanceAppraisalStatus.
[8/23/11 18:08:02:166 CDT] 00000009 InjectionProc E   CWNEN0044E: A resource reference binding could not be found for the jdbc/db resource reference, defined for the PeformanceAppraisalStatus component.
[8/23/11 18:08:02:169 CDT] 00000009 InjectionEngi E   CWNEN0011E:  The injection engine failed to process bindings for the metadata.

Sí, sé que he escrito mal el rendimiento como rendimiento en toda la aplicación.

SOLUCIÓ

Estaba muy cerca. Aquí están los bits faltantes que hicieron que todo encajara:

web.xml:
<resource-ref>      
    <description>
    Datasource connection to db</description>
    <res-ref-name>jdbc/db</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    <mapped-name>jdbc/db</mapped-name>      
</resource-ref>

ibm-web-bnd.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-bnd 
    xmlns="http://websphere.ibm.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-bnd_1_0.xsd"
    version="1.0">

    <virtual-host name="default_host" />


    <resource-ref name="jdbc/db" binding-name="jdbc/mydatasource" />
</web-bnd>

Parece que el archivo ibm-web-bnd.xml maneja el enlace entre el nombre del recurso del proyecto y la fuente de datos en la esfera web. Una vez que agregué la línea:

<resource-ref name="jdbc/db" binding-name="jdbc/mydatasource" />

Websphere Portal parecía aplacado. Mi código está funcionando y conectándose a la base de datos ahora.

Respuestas a la pregunta(6)

Su respuesta a la pregunta