Jdbc resource and jndi

1) How do I add a new jdbc resource.
The tutorial
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/WebApp12.html#wp70019
does it behind the scene with asant.
2) What shall I do if I don't want to use a jdbc resource but a jndi resource which
accesses a OpenLDAP server?

JDBC resource can be created using asadmin command.
Its a two step process.
First JDBC connection pool has to be created using following command.
asadmin create-jdbc-connection-pool user admin password adminadmin host fuyako port 7070 datasourceclassname XA restype jax.sql.DataSource
isolationlevel serializable isconnectvalidatereq=true validationmethod auto-commit description "XA Connection" --property DatabaseName="jdbc\:pointbase\:server\:\/\/local
host\/sample" :User=public:Password=public XA_connection_pool
Next JDBC resource has to be created using the following command.
asadmin create-jdbc-resource --user admin --password adminadmin --host fuyako --port 7070
--connectionpoolid XA_connection_pool --description
"creating a sample jdbc resource" sample_jdbc_resource
Please change the parameters as suitable to you.
The detailed description of these commands can be found as following URLs
http://java.sun.com/j2ee/1.4/docs/relnotes/cliref/hman1/create-connector-connection-pool.1.html
http://java.sun.com/j2ee/1.4/docs/relnotes/cliref/hman1/create-jdbc-resource.1.html

Similar Messages

  • Global JDBC Resource in JNDI

    How would I create a global JNDI JDBC name pointing to a Database Resource? Currently I have a Database Resource that points to a Connection Pool. All this works as long as I deploy a servlet with the JNDI JDBC name configured in the WAR file. Once I deploy this WAR file, the JDBC name becomes visible in the JNDI browsing utility in Sun App Server Admin Console. My real question here is how do I get that name to always be present in the JNDI browsing utility with ZERO deployed applications running. I want it to always be there and I don't want to be forced in configuring the naming in every application that I deploy.

    I'm not following you. Once you bind the resource to JNDI, it's there, that's it, anyone can use it. It will stay until removed or the server/registry is killed, right?
    When you deploy an application, it must know the name/id of the resource it wants right? The best solution I can offer is to put the name in a database or properties file and then when you deploy your apps, they can read the file at runtime and this way you can change the name and all deployed apps will dynamically get updated once they are restarted. And if you don't want to restart the applications, you could have the applications check the properties file or database once in awhile to check for changes.

  • URL Resource and JNDI Replication

    Do URLResources get replicated in the JNDI tree?

    JDBC resource can be created using asadmin command.
    Its a two step process.
    First JDBC connection pool has to be created using following command.
    asadmin create-jdbc-connection-pool user admin password adminadmin host fuyako port 7070 datasourceclassname XA restype jax.sql.DataSource
    isolationlevel serializable isconnectvalidatereq=true validationmethod auto-commit description "XA Connection" --property DatabaseName="jdbc\:pointbase\:server\:\/\/local
    host\/sample" :User=public:Password=public XA_connection_pool
    Next JDBC resource has to be created using the following command.
    asadmin create-jdbc-resource --user admin --password adminadmin --host fuyako --port 7070
    --connectionpoolid XA_connection_pool --description
    "creating a sample jdbc resource" sample_jdbc_resource
    Please change the parameters as suitable to you.
    The detailed description of these commands can be found as following URLs
    http://java.sun.com/j2ee/1.4/docs/relnotes/cliref/hman1/create-connector-connection-pool.1.html
    http://java.sun.com/j2ee/1.4/docs/relnotes/cliref/hman1/create-jdbc-resource.1.html

  • EJB 3.0 @Stateless @EJB @Resource and JNDI clarity..

    Hi,
    I am trying to configure an EJB 3.0 but not able to do so properly.
    I have a single business interface and 2 bean implementation class of the same business interface doing different things. How do I access the EJB's if I have the same business interface class.I am getting JNDI error while trying to lookup.
    Also what does the "name" and "mappedName" in @Stateless(name ="...",mappedName="") signify.
    Then in case of Dependency injection,how should I look for the EJB? What would be it's JNDI name in this case?
    @EJB(name="",beanName="",mappedName="")
    private HelloEJB hello;
    What does the name,benaName and mappedName in case of an @EJB annotation signify??
    Please clear me with these attributes of @Stateless and @EJB and @Resource. I am getting toatlly confused with what should be the logic name and what is the JNDI name????
    Thanks

    In @Stateless, @name() is the annotation equivalent of <ejb-name> in ejb-jar.xml. It gives a unique bean name identifier to the component within the ejb-jar. It is completely independent of mappedName. If no @Stateless name() is specified, it defaults to the unqualified bean class name.
    In @Stateless, mappedName() is used to assign a global JNDI name to the bean's remote interface. This can be used to explicitly lookup the EJB reference to that interface or as one way to resolve a caller's EJB dependency.
    In @EJB, if the target of the dependency lives within the same application, you can always fully resolve it using only beanName(). beanName() takes the value specified in @Stateless name(), or the default as described above.
    @EJB name() assigns a name to the client dependency within the caller's component environment. It is optional. In most cases that value doesn't matter since if the dependency is being injected you never have to refer to the name() attribute anywhere else.
    @EJB mappedName() is used to resolve an EJB dependency that spans applications. It holds a global JNDI name, e.g. the one specified in @Stateless mappedName(). mappedName() is not required to be supported by all vendors.
    So, to sum it all up, it's fine to have two different beans that expose the same interface. E.g. :
    @Stateless(name="A1", mappedName="A1Global")
    public class A1 implements A { ... }
    @Stateless(mappedName="A2Global") // name() defaults to "A2"
    public class A2 implements A { ... }
    In a caller within the same application :
    @EJB(beanName="A1")
    private A a;
    @EJB(beanName="A2")
    private A a;
    In a caller within a different application :
    @EJB(mappedName="A1Global")
    private A a;
    @EJB(mappedName="A2Global")
    private A a;
    You can find additional information in our EJB FAQ :
    https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html#EJB_ejb-ref_ejb_local_ref

  • How to access JDBC Resource registered in Sun Java System App Server ?

    I want to create a stand-alone JDBC application with Java SE using Swing technologies and JNDI technology. The purpose of using JNDI technology is to avoid change of Java Source Code every time I move the database to different location. This Java application will be used in a standalone PC installed with Windows XP Professional with no LAN / WAN connection. Of course, Internet connection is available with the PC.
    I use JavaDB to store the data tables and the location of the database is D:\E-DRIVE\SAPDEV. Tomorrow, if I move this database to C:\SAPDEV or any network drive, I do not want to change the Java Source code. I want to use JNDI which, if I am not wrong, helps developers to avoid manual change of Java source code whenever the database location is changed. Changes have to be made only in the JNDI Name which contains all relevant information about the database in order to get connection no matter where the database SAPDEV is stored; it can be placed under D:\E-DRIVE directory or C:\ directory of the hard disk. To implement my intention, I started developing Java application as per the steps mentioned below:
    Step 1:
    To proceed, first, I sought the help of Sun Java System Application Server Admin Console. I created JNDI object for Connection Pool using the menu path Common Tasks->Resources->JDBC->Connection Pools.
    JNDI Name : ABAPRPY
    Resource Type : javax.sql.DataSource
    Datasource class : org.apache.derby.jdbc.ClientDataSource
    Description : ABAP Program Repository
    The Connection Pool creation has options for General, Advanced and Additional Settings tabs and I made all the settings relevant to the database I created in D:\E-DRIVE\SAPDEV.
    To confirm whether the above settings are correct, I pressed the Ping push button which is available in the General tab of the connection pool creation screen. The system responded with the message Ping Succeeded.
    Step 2:
    I created a JDBC Resource using the menu path Common Tasks->Resources->JDBC->JDBC Resources.
    JNDI Name : jdbc/SAPDEV
    Pool Name : ABAPRPY
    Description : Database Connection for SAPDEV database
    Status : Enabled
    I can see all the above settings recorded in the domain.xml which is placed in the folder
    C:\Sun\AppServer\domains\domain1\config
    Step 3:
    I have made sure that Sun Java System Application Server is up and running in the background with JavaDB server. I created a Java Program making sure the following JAR files are included in the classpath:
    appserv-admin.jar
    appserv-ee.jar
    appserv-rt.jar
    javaee.jar
    fscontext.jar
    Plus, the lib directory of JDK 1.6 & C:\Sun\AppServer\domains\domain1\config
    Source code of the program is as follows: I used NetBeans IDE to create my project file.
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.naming.*;
    import javax.activation.DataSource;
    public class JNDILookup {
    public static void main(String[] args) {
    try {
    InitialContext initCtx = new InitialContext();
    DataSource ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/sapdev>");
    } catch (NamingException ex) {
    Logger.getLogger(JNDILookup.class.getName()).log(Level.SEVERE, null, ex);
    When I attempted to compile the above program in NetBeans IDE ,no compilation error reported. But while executing the program, I got the following run-time error message:
    SEVERE: null
    javax.naming.NameNotFoundException: No object bound for java:comp/env/jdbc/sapdev> [Root exception is java.lang.NullPointerException]
    at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:224)
    at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:396)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)
    at SAPConnect.JNDILookup.main(JNDILookup.java:21)
    Caused by: java.lang.NullPointerException
    at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:173)
    ... 3 more
    Now, I want to come out of this situation; at the same time, I want to preserve the settings I have made in the Sun Java System Application Server Admin Console. That is, I want to programmatically access the data source using Connection Pool created in Sun Java System Application Server Admin Console.
    I request dear forum members to provide me an appropriate solution.
    Thanks and regards,
    K. Rangarajan.

    jay44 wrote:
    Bare in mind I am attempting the context.lookup() from inside the container (my code is in a session bean). I have accessed the server and have my bean "say hello" first to verify the bean works OK, then I call a method with this rather standard code:
    String jndiDataSourceName ="Second_EJB_Module_DataBase";
    Logger.getLogger(DynamicPU.class.getName()).log(Level.INFO,"Programatically acquiring JNDI DataDource: "+ jndiDataSourceName);
    InitialContext ctx;
    try {
    ctx = new InitialContext();
    ds =(DataSource)ctx.lookup("java:comp/env/jdbc/"+jndiDataSourceName);
    } catch (NamingException ex) {
    Logger.getLogger(DynamicPU.class.getName()).log(Level.SEVERE, null, ex);
    return "Exception generated trying to preform JDBC DataSource lookup. \n"+ex.toString();
    But when I run the code the server log shows the initial context is created Ok, but an exception is thrown becasue the resource name is not found:
    (and i have tried vriations of ctx.lookup("jdbc/"+jndiDataSourceName) etc etc
    You are fine here. It works in container because the InitialContext properties have been supplied already. That was the link I forwarded earlier. The InitialContext you create locally needs to locate the container JNDI. That is what the properties specify.
    Where I am confused is where you indicate the stack below is from the server log. So, you initiate a standalone (java main method) application, create an InitialContext, and you see the results in your app server log?
    LDR5010: All ejb(s) of [EJB_Module_1] loaded successfully!
    Programatically acquiring JNDI DataDource: Second_EJB_Module_DataBase
    The log message is null.
    javax.naming.NameNotFoundException: Second_EJB_Module_DataBase not found
    at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:216)
    at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:188)
    at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:192)...
    at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    This is strange since I can see this resource (a JDBC connection named Second_EJB_Module_DataBase) is configured on the server from the server's admin console.
    That is why you can obtain a lookup from within the container (app server).
    For this lookup to work it may be that one must map the name inside an ejb-jar.xml deployed with the application, but I have also read some resources like jdbc connection should have a default name. Does anyone know if my lookup() should work without using an ejb-jar.xml mfile to explcitly map the reource for my application?
    Both EBJ's and data sources can be referenced via JNDI. It's a remote lookup (that is normally optimized if it is running in the same JVM). You should not have any dependencies on a JDBC data source being set-up on ejb-jar.xml. That file can of course impact your EJB's. However, data sources are normally set-up on a container-specific basis (e.g., you probably did it through a console, but there is a spec somewhere about how to set up a data source via a resource the app server looks for; it varies from app server to app server). However, once you have that container-specific data source set-up, JNDI operates vendor-neutral. You should be able to take the code above and move it to JBoss or Weblogic or Tomcat or whatever (this is an ideal, in practice, the vendors sometimes put a data source in a name you would not expect, but again, you can use their JMX console to see what the JNDI name is).
    (As I stated above if I have to use a deployment discriptor to get at this JNDI datasource, then solution is not "programmatic" as newly configured datasources could not be accessed without redeploying the entire application).
    As JSchell alluded to, you will always have at least something vendor-specific. JNDI itself (the code you wrote) is totally portable. However, you have to set the various JNDI environment properties to a given vendor's spec. Ideally, you should not need a vendor's actual InitialContext application, but it's a possibility. Once you can safely cast to Context, you should be vendor-neutral (if not, demand your money back).
    So that is exactly where I am stuck, trying to get the lookup to work and wondering if it should work without and xml file mapping the resource for my app.
    What we ended up doing for standalone was to provide our own JNDI. If you look at the open source project JOTM, there are examples on how to use that with XBean (if integrating with Spring, as we did), you can easily set up a data source that runs standalone exactly as you get in the container. Another benefit is you get full JTA/JTS support and the ability to run XA transactions. (This might all be alphabet soup, but the app server gives it to you, and this is the way we ended up doing the same: JNDI + JTA + JTS + XA). It ends up the same application code uses a "vanilla" InitialContext and all we have to do is write one or two xml files (one for our app server, a couple for JOTM), and our actual code works the same.
    I still think you have a shot at getting to the container's JNDI, just not using their full-blown app server JAR.
    I think there must be a simple way to do this with an ejb-jar.xml, I am no expert in JNDI, I could be missing something simple, I will keep at it and post an answer here if I come up with it.
    Thanks, jayIt is simple to code. Getting it to integrate with your app server, yes, that can be challenging. But it has nothing to do with EJB's. Write a simple test. Using nothing but DataSource and InitialContext. Let us know where you get stuck.
    - Saish

  • JDBC resource

    I have the following configuration for a JDBC resource and i expected the connections to stay alive between web server restarts but i see from the oracle side that the sessions logon time keep changing every couple of hours. Should the logon time match the web server restart time at least for the minimum number of connections? Is there another parameter to make sure the connections stay alive and keep being reused instead of opening new ones?
    <jdbc-resource>
        <jndi-name>jdbc/pgmgrdb</jndi-name>
        <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
        <max-connections>34</max-connections>
        <isolation-level>serializable</isolation-level>
        <property>
          <name>password</name>
          <value>passwrod</value>
          <description/>
        </property>
        <property>
          <name>user</name>
          <value>username</value>
          <description/>
        </property>
        <property>
          <name>url</name>
          <value>jdbc:oracle:thin:@xx.x.xx.xx:1521:DEV</value>
          <description/>
        </property>
        <property>
          <name>perf-monitor</name>
          <value>true</value>
          <description/>
        </property>
        <property>
          <name>perf-monitor-interval</name>
          <value>120</value>
          <description/>
        </property>
        <description>PM Datasource</description>
      </jdbc-resource>Thanks
    JB

    Right, that part i understand but the part that i cannot get my head around is the logon time for these connections as seen from Oracle seems to change every 2-3 hours. It seems like the initial connections opened by the web server are closed and new sessions are created to replace them. I am not able to figure out why those connections are closed thereby defeating the purpose of a connection pooling.
    It is not even that additional load is causing the connections to spike and then the pool is re-sized back to the initial level - the connection pool size stays steady but the new connections are established to replace the ones that are closed. The pool is being used by the code via spring. The reason we are looking into this because we noticed latency during getConnection and release connection and my theory is that there shouldn't be any latency because the pool has already established connection. We are using SJWS 7.0u5 / JDK 1.6_14 with Oracle 9i.
    Thanks
    JB

  • JDBC, JMS and EJB transactions - possible problem?

    Hello,
              I am using Oracle 9, Weblogic 8.1 SP 4, MyEclipse and
              XDoclet.
              In my current project I have the following piece of code
              in one of my message driven beans (code cited as pseudocode
              without unnecessary details):
              * @ejb.bean name="MyMessageProcessor"
              * display-name="Display name for a MyMessageProcessor"
              * jndi-name="ejb/MyMessageProcessor"
              * description="Bean MyMessageProcessor"
              * destination-type="javax.jms.Queue"
              * transaction-type="Container"
              * acknowledge-mode="Auto-acknowledge"
              * subscription-durability="Durable"
              * generate="false"
              * @ejb.transaction type="Required"
              public class MyMessageProcessor implements MessageDrivenBean, MessageListener {
              public void onMessage(Message msg) {
                   try {
                        //obtaining connections to two different databases via JNDi
                        java.sql.Connection connOne =
                        ((DataSource)ctx.lookup("DataSourceOne")).getConnection();          
                        java.sql.Connection connTwo =
                             ((DataSource)ctx.lookup("DataSourceTwo")).getConnection();
                        // performing some UPDATEs and INSERTs on connOne and connTwo
                        // calling some other methods of this bean
                        //creating the reply JMS message and sending it to another JMS queue
                        Message msgTwo = this.createReplyMessage(msg)
                        this.queueSender.send(msgTwo);
                        //commiting everything
                        this.queueSession.commit();          
                   } catch (Exception ex) {
                   try {
                        if (this.queueSession!=null) this.queueSession.rollback();
                   } catch (JMSException JMSEx) {};     
                   this.context.setRollbackOnly();
              Some days ago (before the final remarks from my client) there used to be only one DataSource configurated on the basis of the
              connection pool with non-XA jdbc driver. Everything worked fine
              including the transactions (if anything wrong happend not only wasn't the replymessage sent, but also no changes were written
              to database and the incomming message was thrown back to the my bean's
              queue).
              When I deployed the second DataSource I was informed by an error message, that only one non-transactional resource may
              participate in a global transaction. When I changed both datasources
              to depend on underlying datasources with transatcional (XA) jdbc drivers, everything stopped working. Even if
              EJB transaction was theoretically successfully rolledbacked, the changed were written to the database
              and the JMS message wasn't resent to the JMS queue.
              So here are my questions:
                   1. How to configure connection pools to work in such situations? What JDBC drivers should I choose?
                   Are there any global server configurations, which may influence this situation?
                   2. Which jdbc drivers should I choose so that the container was able to rollback the database transactions
                   (of course, if necessary)?
                   3. Are there any JMS Queue settings, which would disable the container to send message back to the
                   queue in case of setRollbackOnly()? How should be the Queue configurated?
              As I am new to the topic and the deadline for the project seems to be too close I would be grateful
              for any help.
              This message was sent to EJB list and JDBC list.
              Sincerely yours,
              Marcin Zakidalski

    Hi,
              I found these information extremely useful and helpful.
              The seperate transaction for sending messages was, of course, unintentional. Thanks a lot.
              Anyway, I still have some problems. I have made some changes to the
              code cited in my previous mail. These changes included changing QueueSessions
              to non-transactional. I also set the "Honorate global transactions" to true.
              I am using XA JDBC driver. After setting "Enable local transactions" to false
              (I did it, because I assume that JDBC transactions should be part on the global
              EJB transaction) I got the following error:
              java.sql.SQLException: SQL operations are not allowed with no global transaction by default for XA drivers. If the XA
              driver supports performing SQL operations with no global transaction, explicitly allow it by setting
              "SupportsLocalTransaction" JDBC connection pool property to true. In this case, also remember to complete the local
              transaction before using the connection again for global transaction, else a XAER_OUTSIDE XAException may result. To
              complete a local transaction, you can either set auto commit to true or call Connection.commit() or Connection.rollback().
              I have also inspected the calls of methods of bean inside of onMessage() method just to check, whether
              the transactions are correctly initialized (using the weblogic.transaction.Transaction class).
              My questions are as follows:
              1. Any suggestions how to solve it? I have gone through the google answers on that problem and only
              thing I managed to realize that JDBC must start its own transaction. Is there any way to prohibit it
              from doing that? Can using setAutocommit(true/false) change the situation for better?
              2. How to encourage the JDBC driver to be a part of EJB transaction?
              3. As I have noticed each of ejb method has its own transactions (transactions have different
              Xid). Each method of the bean has "required" transaction attribute. Shouldn't it work in such
              way that if already started transaction exists it is used by the called method?
              4. The DataSources are obtained in my application via JNDI and in the destination environment I will have slight
              impact on the configuration of WebLogic. What is least problematic and most common WebLogic configuration which would
              enable JDBC driver to participate in the EJB transaction? Is it the WebLogic configuration problem or can it be
              solved programmically?
              Currently my module works quite fine when "enable local transactions" for DataSources is set to true, but this way
              I am loosing the ability to perform all actions in one transaction.
              Any suggestions / hints are more than welcomed. This message was posted to jdbc list and ejb list.
              Marcin

  • Problem with creating Connection pool and JNDI, driver is not detected

    Hi,
    I have an issue with creating Connection Pool and JNDI.
    I'm using:
    - JDK 1.6
    - OS: Linux(ubuntu 8.10)
    - Netbeans IDE 6.5.1
    - Java EE 5.0
    - Apache Tomcat 6.0.18 Its lib directory contains all necessary jar files for Oracle database driver
    - Oracle 11g Enterprise
    My problem is that the Oracle database driver is not detected when I want to create a pool (it works pretty well and is detected without any problem when I create ordinary connection by DriverManager)
    Therefore after running:
    InitialContext ic = new InitialContext();
    Context context = (Context)ic.lookup("java:comp/env");
    DataSource dataSource = (DataSource)context.lookup("jdbc/oracle11g");
    Connection connection = dataSource.getConnection();and right after dataSource.getConnection() I have the following exception:
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.OracleDriver'
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1136)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at servlets.Servlet1.doPost(Servlet1.java:47)
    at servlets.Servlet1.doGet(Servlet1.java:29)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1130)
    ... 17 more
    My application context file (context.xml) is:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/WebApplication3">
      <Resource auth="Container"
                      driverClassName="oracle.jdbc.OracleDriver"
                      maxActive="8"
                      maxIdle="4"
                      name="jdbc/oracle11g"
                      username="scott"
                      password="tiger"
                      type="javax.sql.DataSource"
                      url="jdbc:oracle:thin:@localhost:1521:database01" />
    </Context>and my web.xml is:
        <resource-ref>
            <description>Oracle Datasource example</description>
            <res-ref-name>jdbc/oracle11g</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
        </resource-ref>
    ...I found similar threads in different forums including sun, such as
    http://forums.sun.com/thread.jspa?threadID=567630&start=0&tstart=0
    http://forums.sun.com/thread.jspa?threadID=639243&tstart=0
    http://forums.sun.com/thread.jspa?threadID=5312178&tstart=0
    , but no solution.
    As many suggest, I also tried to put context directly in the server.xml (instead of my application context) and referencing it by <ResourceLink /> inside my application context but it didn't work and instead it gave me the following message:
    org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '   ' for connect URL 'null'
    Has anyone succeeded in creating a connection pool with JNDI by using Tomcat 6 or higher ? If yes, could kindly explain about the applied method.
    Regards,

    Hello again,
    Finally I managed to run my application also with Tomcat 6.0.18. There was only two lines that had to be modified
    in the context.xml file (the context of my application project and not server's)
    Instead of writing
    <Context antiJARLocking="true" path="/WebApplication2">
        type="javax.sql.DataSource"
        factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
    </Context>we had to write:
    <Context antiJARLocking="true" path="/WebApplication2">
        type="oracle.jdbc.pool.OracleDataSource"
        factory="oracle.jdbc.pool.OracleDataSourceFactory"
    </Context>- No modification was needed to be done at server level (niether server.xml nor server context.xml)
    - I just added the ojdbc6.jar in $CATALINA_HOME/lib (I didn't even need to add it in WEB-INF/lib of my project)
    - The servlet used to do the test was the same that I presented in my precedent post.
    For those who have encountered my problem and are interested in the format of the web.xml and context.xml
    with Tomcat 6.0, you can find them below:
    Oracle server: Oracle 11g Enterprise
    Tomcat server version: 6.0.18
    Oracle driver: ojdbc.jar
    IDE: Netbeans 6.5.1
    The context.xml file of the web application
    <?xml version="1.0" encoding="UTF-8"?>
    <Context antiJARLocking="true" path="/WebApplication2">
        <Resource name="jdbc/oracle11g"
                  type="oracle.jdbc.pool.OracleDataSource"
                  factory="oracle.jdbc.pool.OracleDataSourceFactory"
                  url="jdbc:oracle:thin:@localhost:1521:database01"
                  driverClassName="oracle.jdbc.OracleDriver"
                  userName="scott"
                  password="tiger"
                  auth="Container"
                  maxActive="100"
                  maxIdle="30"
                  maxWait="10000"
                  logAbandoned="true"
                  removeAbandoned="true"
                  removeAbandonedTimeout="60" />
    </Context>The web.xml of my web application
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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">
        <resource-ref>
            <description>Oracle Database 11g DataSource</description>
            <res-type>oracle.jdbc.pool.OracleDataSource</res-type>
            <res-auth>Container</res-auth>
            <res-ref-name>jdbc/oracle11g</res-ref-name>
        </resource-ref>
        <servlet>
            <servlet-name>Servlet1</servlet-name>
            <servlet-class>servlets.Servlet1</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>Servlet1</servlet-name>
            <url-pattern>/Servlet1</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>Ok, now I'm happy as the original problem is completely solved
    Regards

  • EclipseLink Error looking up external Transaction resource under JNDI name

    I want to verify my EJB 3.0 setup for a Java EE project to be deployed on Weblogic 10.3.3 (11gR2) - however when trying to run the JUnit test from eclipse I keep getting the following exception :
    Exception [EclipseLink-23004] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.TransactionException
    Exception Description: Error obtaining the Transaction Manager
    Internal Exception: Exception [EclipseLink-23001] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.TransactionException
    Exception Description: Error looking up external Transaction resource under JNDI name [weblogic.transaction.TransactionManager]
    Internal Exception: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
         at org.eclipse.persistence.exceptions.TransactionException.errorObtainingTransactionManager(TransactionException.java:125)
         at org.eclipse.persistence.transaction.JTATransactionController.<init>(JTATransactionController.java:69)
         at org.eclipse.persistence.transaction.wls.WebLogicTransactionController.<init>(WebLogicTransactionController.java:27)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
         at java.lang.Class.newInstance0(Class.java:355)
         at java.lang.Class.newInstance(Class.java:308)
         at org.eclipse.persistence.internal.security.PrivilegedAccessHelper.newInstanceFromClass(PrivilegedAccessHelper.java:354)
         at org.eclipse.persistence.platform.server.ServerPlatformBase.initializeExternalTransactionController(ServerPlatformBase.java:247)
         at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.preConnectDatasource(DatabaseSessionImpl.java:656)
         at org.eclipse.persistence.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:581)
         at org.eclipse.persistence.internal.jpa.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:228)
         at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:369)
         at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:151)
         at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:207)
         at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:195)
         at com.junit.ejb.orclperf.EjbValidation.setUp(EjbValidation.java:27)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
         at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
         at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
         at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
         at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
         at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
         at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
         at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
         at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
         at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
         at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
         at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
         at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
    Caused by: Exception [EclipseLink-23001] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.TransactionException
    Exception Description: Error looking up external Transaction resource under JNDI name [weblogic.transaction.TransactionManager]
    Internal Exception: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
         at org.eclipse.persistence.exceptions.TransactionException.jndiLookupException(TransactionException.java:47)
         at org.eclipse.persistence.transaction.AbstractTransactionController.jndiLookup(AbstractTransactionController.java:434)
         at org.eclipse.persistence.transaction.wls.WebLogicTransactionController.acquireTransactionManager(WebLogicTransactionController.java:35)
         at org.eclipse.persistence.transaction.JTATransactionController.<init>(JTATransactionController.java:67)
         ... 40 more
    Caused by: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
         at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
         at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
         at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
         at javax.naming.InitialContext.lookup(InitialContext.java:392)
         at org.eclipse.persistence.transaction.AbstractTransactionController.jndiLookup(AbstractTransactionController.java:432)
         ... 42 more
    [EL Finest]: 2010-05-23 21:29:36.629--ServerSession(30149247)--Thread(Thread[main,5,main])--End deploying Persistence Unit PERFEJB; session file:/C:/Users/owner/workspace/PERFEJB/build/classes/_PERFEJB; state Deployed; factoryCount 2The code for the JUnit test is the following:
    package com.junit.ejb.orclperf;
    import static org.junit.Assert.*;
    import java.util.Calendar;
    import java.util.Date;
    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;
    import javax.persistence.Query;
    import org.junit.Before;
    import org.junit.Test;
    import eJBgetSet.Attachment;
    import eJBgetSet.Request;
    public class EjbValidation {
         private static final String PERSISTENCE_UNIT_NAME="PERFEJB";
         private EntityManagerFactory factory;
         @Before
         public void setUp() throws Exception {
              factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
              EntityManager em = factory.createEntityManager();
              em.getTransaction().begin();
              Query q = em.createQuery("select r from Request r");
              Calendar c = Calendar.getInstance();
              c.add(Calendar.DAY_OF_MONTH,5);
              Date dnow = c.getTime();
              String[] type= {"Databank","SQL File","Script","Scenario Recording","Other"};
              byte[] junitattachment  = (byte[])"abcdefghijklmnopqrstuvwxyz".getBytes();
              boolean createNewEntries = (q.getResultList().size()==0);
              if(createNewEntries){
                   assertTrue(q.getResultList().size() == 0);
                   Request request = new Request();
                   request.setRequestid(0);
                   request.setReqdescription("JUnit Testing record addition with JPA");
                   request.setReqjustification("Validate EclipseLink/WebLogic/EJB 3.0 setup for this project");
                   request.setProjectreference("Development Task Performance Analysis 1");
                   request.setReqresultdate(dnow);
                   request.setReqstatus(0);
                   em.persist(request);
                   int x=0;
                   for(int i=0; i<10;i++){
                        Attachment attachment = new Attachment();
                        attachment.setAttachmentid(i);
                        attachment.setAttachname("File"+i);
                        attachment.setAttachdate(c.getTime());
                        if(i==5){
                             x=0;
                        }else{
                             x++;
                        attachment.setAttachtype(type[x]);
                        attachment.setAttachuser("User"+i);
                        attachment.setAttachsize(String.valueOf(junitattachment.length));
                        attachment.setAttachfile(junitattachment);
                        em.persist(attachment);
                        request.getPerfAttachments().add(attachment);
                        em.persist(attachment);
                        em.persist(request);
                   em.getTransaction().commit();
                   em.close();
         @Test
         public void testFindAll() {
              EntityManager em = factory.createEntityManager();
              Query q = em.createQuery("select a from perf_attachment a");
              assertTrue(q.getResultList().size() == 10);
              em.close();
         @Test
         public void testSave() {
              EntityManager em = factory.createEntityManager();
              Query q = em.createQuery("select r from req_perf_header");
              assertTrue(q.getResultList().size() == 1);
              assertTrue(((Request) q.getResultList()).getPerfAttachments().size() ==10);
              em.close();
    }Finally the persistence.xml file being used is the following:
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0"
         xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
         <persistence-unit name="PERFEJB" transaction-type="JTA">
              <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
              <jta-data-source>jdbc/ORCLPERF</jta-data-source>
              <class>eJBgetSet.User</class>
              <class>eJBgetSet.Transaction</class>
              <class>eJBgetSet.Request</class>
              <class>eJBgetSet.PerfStatus</class>
              <class>eJBgetSet.Attachment</class>
              <class>eJBgetSet.Approver</class>
              <properties>
                   <property name="eclipselink.target-server" value="WebLogic_10" />
                   <property name="eclipselink.logging.level" value="FINEST" />
                   <property name="eclipselink.jdbc.driver" value="oracle.jdbc.OracleDriver" />
                   <property name="eclipselink.jdbc.platform"
                        value=" org.eclipse.persistence.platform.database.oracle.OraclePlatform " />
                   <property name="eclipselink.jdbc.url"
                        value="jdbc:oracle:thin:@localhost:1521:orcl11g:create=true" />
                   <property name="eclipselink.jdbc.user" value="<username>" />
                   <property name="eclipselink.jdbc.password" value="<password>" />
                   <property name="eclipselink.logging.level" value="ALL" />
                   <property name="eclipselink.logging.timestamp" value="true" />
                   <property name="eclipselink.logging.exceptions" value="true" />
                   <property name="eclipselink.logging.session" value="true" />
                   <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
                   <property name="eclipselink.ddl-generation.output-mode"
                        value="database" />
              </properties>
         </persistence-unit>
    </persistence>Any help would be much appreciated. Many Thanks

    You have it set to run on the WebLogic platform so it is looking up the TransactionManager from JNDI, but are running the test from within the EclipseIDE. Try deploying it to Weblogic and running it there, or change your persistence.xml settings so that it can connect/run outside the server.
    Best Regards,
    Chris

  • Sun JSAS P.E 9.0 and JNDI connection

    Hi all I am guessing this is probably in the wrong spot, so please correct me if there is a better place to put it. I am trying to setup a JNDI connection to a database, but am confused by the parameters that are required.
    I am expected to fill in the following:
    Resource Type:
    JNDI Lookup:
    Factory Class:
    But I haven't the faintest idea what these are supposed to represent. Could anyone point me to either a site with an example configuration or give me an idea of what this means ?
    thanks in advance.
    Ps. I have tried to search the web with no real results, but if they are out there let me know and I will go back to searching.

    The JDBC forum is a more appropriate place than the
    new to java. However, you have not given much
    information for anyone to work with.
    How are you setting up the connection? parameters for
    what? etc.I want to use JNDI and I am setting up it under external resources in the Server.
    It gives this: "Create an external JNDI resource so that applications can gain access to resources stored in an external respository."
    And the items I listed are those things that are required for the server.
    I am listing as much as I am aware of at this time. (Sorry if it is insufficient to help)
    PS. (Is there a method to move this post to the JDBC forum ? )
    Message was edited by:
    Aknibbs

  • Sun Java Web Server 7 and JNDI Jell

    Hi all,
    I am building a normal Java EE web app (WAR file), and I was originally developing on GlassFish v2.1 and everything was beautiful. Now, I found out our shared server is Sun Java Web Server 7, but the sys admin said everything should run fine as long as I wasn't using JSB's.
    I downloaded and installed SJWS7 on my local machine so I could test my application against it, and JPA and SJWS7 are not getting along.
    I am trying to bind my persistence.xml to the data source I created on SJWS7.
    SJWS7 JDBC Resource: jdbc/pact
    persistence.xml:
        <persistence-unit name="pact" transaction-type="RESOURCE_LOCAL">
            <description>PA/Circuit Tracking Development</description>
            <provider>org.hibernate.ejb.HibernatePersistence</provider>
            <non-jta-data-source>java:comp/env/jdbc/pact</non-jta-data-source>
            <properties>
            ....There is nothing in sun-web.xml or web.xml that references this resource (although I tried that too, and no go).
    The traceback I get is:
    <code>Caused by: javax.naming.NameNotFoundException: PWC4216: Name pact is not bound in this Context
         at org.apache.naming.NamingContext.lookup(NamingContext.java:778)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:148)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:789)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:148)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:789)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:148)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:789)
         at org.apache.naming.NamingContext.lookup(NamingContext.java:161)
         at org.apache.naming.SelectorContext.lookup(SelectorContext.java:147)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:52)
         ... 151 moreI've been trying for almost an entire day now, and googling isn't revealing anything helpful. I don't know what I'm doing wrong. Can anyone point me in the right direction?

    u should be using
    - default installation ( you can also use silent installation for this)
    admin-server/bin/startserv
    wadm delete-instance --user admin
    wadm delete-config --user admin                                                                                                                                                                                                                                                                                                                                                                               

  • WLST modified db uname/pwd verification for JDBC resource-No Restart Server

    Hi,
    I have created a WLST script for changing the db username and password for a particular jdbc resource.It is working fine.
    But to verify whether the right username and password has been provided ,is there a way to test the db connection for the changed user name and password without restarting the server.
    I also understand that there would be the cached connections of the previous user name and password for the jdbc resource.
    Please let me know if I can do this using any API's in WLST or any other way.
    Idea is to execute the change db user name and password and verification in one go.
    Cheers,
    Mohan

    You could try something like
    servers = domainRuntimeService.getServerRuntimes();
    # this return an array, for example array(weblogic.management.runtime.ServerRuntimeMBean,[[MBeanServerInvocationHandler]com.bea:Name=AdminServer,Location=AdminServer,Type=ServerRuntime])
    # we obtain the server to which the datasource is targetted
    admin = servers[0];
    jdbcruntime = admin.getJDBCServiceRuntime();
    datasources = jdbcruntime.getJDBCDataSourceRuntimeMBeans();
    # this returns an array of the active datasources on the server, for example array(weblogic.management.runtime.JDBCDataSourceRuntimeMBean,
    # [[MBeanServerInvocationHandler]com.bea:ServerRuntime=AdminServer,Name=ExampleDataSource,Location=AdminServer,Type=JDBCDataSourceRuntime])
    datasource = datasources[0];
    # Reset the connection pool in the data source by shutting down and recreating all available database connections in the pool.
    datasource.reset();
    # Test the connection pool in the data source by reserving and releasing a connection from it.
    test = datasource.testPool();
    # Print out information about all the connections in the connection pool in the data source, if there are any.
    datasource.dumpPool();

  • JDBInsight 2.0 Released - True J2EE/JDBC Resource Transaction Analysis !!

    DUBLIN, IRELAND - 29th October, 2003 - JInspired (www.jinspired.com), a leader in J2EE(tm) transaction analysis, today announced JDBInsight 2.0, the next generation of J2EE performance management products from JInspired.
    Downloads: http://www.jinspired.com/products/jdbinsight/downloads/index.html
    JDBInsight is the first product to effectively integrate Java profiling information with JDBC/SQL transaction analysis. Version 2.0 has numerous features derived from its support of the Java VM Profiling Interface (JVMPI) such as Java call stack analysis, cpu, blocking and waiting measurements at the transaction path level. Clock measurements are adjusted for blocking, waiting and gc pauses. New features in this release
    - New console user interface: Many new informative visualizations of J2EE transactions and performance execution profiles have been added. Including call stack graphs, entry point tree maps, sequence diagrams, call stack and transaction transcripts. Additional views included allow for navigation of the performance profile via database table or column, Java package, class, or method, technology classification, SQL tokens, or transaction entry points.
    - Java call stack classification engine: Developers, testers, database and J2EE server administrators can now better understand the interaction of various Java enterprise technologies with corporate databases. Classifications are available for Java enterprise technologies such as EJB, Hibernate, JDO, JMS, JSP, Servlets, JTS, JDBC, and Struts.
    - Terminal services: The terminal services add-on provides a quick and easy way to communicate with multiple servers without having to use a graphical user interface. This facilitates the streamlined connection, activation and deactivation of profiles on local or remote servers with the ability to control multiple servers from a single terminal. The terminal environment provides a powerful environment to create and schedule snapshot information, in order to monitor servers at regular intervals, with the ability to store and retrieve snapshots from any mounted drive, as well as providing a rich set of commands, that can be executed from saved scripts, to assist in analysis of this highly detailed profile data.
    - Transaction demarcations: JDBInsight 2.0 is the first performance management product to have the ability to detect and present resource transaction demarcations - allowing visual sub-transaction identification.
    - Resource Management: JDBInsight keeps counters representing objects states for each JDBC interception point create a resource object. When a JDBC resource changes state the allocation site counters are updated. This helps to pinpoint source code locations where resource objects are created and not closed properly or freed from memory. Because an interception is a combination of call stack and SQL the view caters for generic J2EE application frameworks which create objects based on application parameters and callers.
    - Xml expor: Various statistical measurements can be viewed in Xml format and copied into applications for custom report generation.
    - Server options: Additional system properties to customize the small amount of overhead added during runs.
    About JDBInsight
    JDBInsight is an innovative enterprise development product, aimed at simplifying the performance tuning and testing of J2EE(tm) applications, which access data through the Java Database Connectivity (JDBC(tm)) API. JDBInsight analyses the access of enterprise data by J2EE(tm) client-, web-, and bean containers. The analysis can encompass transaction executions, from multiple J2EE(tm) containers. JDBInsight captures timing and execution information for enterprise data accessed by Servlets, JavaServer Pages, Session- and Entity Beans using JDBC(tm) or an Entity Bean using a container's persistence engine. JDBInsight can also profile non-J2EE applications that access enterprise data through the JDBC(tm) API.
    What distinguishes JDBInsight from other profiling and performance management tools on the market is that JDBInsight provides analysis from a sequence perspective instead of simply showing a call tree. Inefficiencies in J2EE applications occur mainly at the transaction level such as repeating the execution of a particular SQL locally and globally. JDBInsight facilitates the recognition of database interaction patterns that exhibit inefficiencies when viewed in terms of the sequential execution of a business and/or resource transaction.
    About JInspired
    JInspired located in Ireland, delivers JDBInsight, a comprehensive solution for Application Performance Tuning and Testing that focuses directly on early identification within the development and testing lifecycle. Jinspired offers sophisticated analytical tools, that capture transactional behaviour and performance timing information, across multiple containers in a single console, and presents this information intuitively to the user "Visualizing the Invisible".

    any one

  • Cannot access to JDBC Resource from application client

    Hello!
    I have created a Connection Pool to my PostgreSQL database and a JDBC Resource via Admin Console in SJSAS 9.1_02. I can ping the connection pool ok.
    I can get a Connection from a Stateless session Bean:
    Context ctx = new InitialContext();               
    DataSource ds = (DataSource)ctx.lookup("jdbc/pgDS");
    Connection c = ds.getConnection();
    //working with c
    c.close();It works fine.
    But when I try to do the same from client application (created with netbeans template "Enterprise Application Client"), I get an exception on this line: Connection c = ds.getConnection();
    The Exception:
    28.10.2008 20:09:10 com.sun.gjc.common.DataSourceObjectBuilder getDataSourceObject
    SEVERE: RAR5099 : Wrong class name or classpath for Datasource Object
    java.lang.ClassNotFoundException: org.postgresql.ds.PGSimpleDataSource
    at com.sun.enterprise.loader.EJBClassLoader.findClassData(EJBClassLoader.java:741)
    at com.sun.enterprise.loader.EJBClassLoader.findClass(EJBClassLoader.java:631)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:251)
    at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:106)
    at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:970)
    at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:139)
    at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:93)
    at com.sun.enterprise.resource.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:68)
    at com.sun.enterprise.resource.AbstractResourcePool.createSingleResource(AbstractResourcePool.java:891)
    at com.sun.enterprise.resource.AbstractResourcePool.createResourceAndAddToPool(AbstractResourcePool.java:1752)
    at com.sun.enterprise.resource.AbstractResourcePool.createResources(AbstractResourcePool.java:917)
    at com.sun.enterprise.resource.AbstractResourcePool.initPool(AbstractResourcePool.java:225)
    at com.sun.enterprise.resource.AbstractResourcePool.internalGetResource(AbstractResourcePool.java:516)
    at com.sun.enterprise.resource.AbstractResourcePool.getResource(AbstractResourcePool.java:443)
    at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
    at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:327)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
    at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
    at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:108)
    at converter.Main.doConversion(Main.java:56)
    at converter.Main.main(Main.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
    at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
    at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
    at com.sun.enterprise.appclient.Main.main(Main.java:200)
    28.10.2008 20:09:10 com.sun.enterprise.resource.LocalTxConnectorAllocator createResource
    WARNING: RAR5038:Unexpected exception while creating resource for pool vlkvPostgresPool. Exception : Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource
    28.10.2008 20:09:10 com.sun.enterprise.connectors.ConnectionManagerImpl internalGetConnection
    WARNING: RAR5117 : Failed to obtain/create connection from connection pool [ vlkvPostgresPool ]. Reason : Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource
    28.10.2008 20:09:10 com.sun.gjc.spi.base.DataSource getConnection
    WARNING: RAR5114 : Error allocating connection : [Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource]
    Caught an unexpected exception!
    java.sql.SQLException: Error in allocating a connection. Cause: Class name is wrong or classpath is not set for : org.postgresql.ds.PGSimpleDataSource
    at com.sun.gjc.spi.base.DataSource.getConnection(DataSource.java:115)
    at converter.Main.doConversion(Main.java:56)
    at converter.Main.main(Main.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
    at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
    at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
    at com.sun.enterprise.appclient.Main.main(Main.java:200)
    Please help me, I'm trying to solve it all day long...

    the issue is right in the exception trace. obviously, your client code does not have the "org.postgresql.ds.PGSimpleDataSource" class in its classpath.
    note, generally DataSources are not something you would access from a remote client.
    Edited by: jtahlborn on Oct 28, 2008 4:18 PM

  • JDBC Resource require a Application Server Reboot?

    I am running Sun Application server and using netbeans to access a Postgresql database in a J2EE application.
    When i change the values in a JDBC Resource Connection pool (ether via a deploy deploy from Netbeans or manually on the server), they don't seem to take effect until the server is restarted?
    Is there a way to get these values used by the server wthout a reboot?
    Bryon

    Hi Bryon,
    Which version of App. Server are you using?
    This behaviour was there until App Server v 7.
    I tried setting (changing) the connection pool properties (max pool size, initial pool size, pool-resize quantity) with new version using GUI and able to see the refreshed values using asadmin "get" command.
    Can you specify the properties that you are trying to change?
    -Jagadish

Maybe you are looking for

  • Iphone 5S HD Voice

    Does the 5S support HD Voice Calls ?

  • G5 Hangs When Loading Tiger

    Okay, check this out... Just picked up a PowerPC G5 4x2.5... a nice little quad system with installed 6gb RAM. When I attempt to install the Tiger operating system... I load the DVD, it tells me to restart, and then it happens... It tries to restart,

  • CCM - Publishing Master catalog gives short dump and terminates publishing

    Hello Experts, we are implementing SRM 5.0 with CCM 2.0 in SP08. When we tried to publish the master catalog in CCM. we are getting the following error. FYI.. i ran /CCM/initialize_cme once. Checked TREX it is working fine. (checked with reports as w

  • Email has an attachment but no paperclip and can't see attachment.

    I recently was sent an email that I know had a link in the body of the email. I however opened up the email and there was no link nor was there a paper clip as there should have been. . If I open the same email on my laptop ther sits the link and I a

  • How I can change my apple iD in an iPad

    I would like to know that how I can change an apple ID to a new one because I've forgot the password of the old account one?