Using Oracle8 JDBC Drivers with WebLogic 5.1

We are currently using the BEA WebLogic 5.1 application server and Oracle 8.0.4. We are using the JDBC OCI driver that came out-of-the-box with the WebLogic software. However, we would like to use the driver developed by Oracle, instead.
Does the Oracle8 JDBC driver (both type 2 and type 4) interoperate with WebLogic 5.1? If not, what are the problems that prohibit them being used together?
Thanks... Steve Bursch

Summarizing from previous threads on this forum (I have not run this configuration myself):
The main issue is that you will not be able to use Oracle-specific functionality from the Oracle driver.
This includes all types in oracle.sql, or any APIs on oracle.jdbc.driver.OracleXxxx classes, or JPublisher-generated wrappers for SQL Object Types, collections, or REFs.
Also, since Oracle does not support side-channel result sets, but requires explicit REF CURSOR out parameters from stored procedures/functions, you will not be able to return REF CURSORs to the client, from stored proedures or functions - the getCursor() API that is required is Oracle-specific and not part of JDBC.
As long as you limit yourself strictly to standard JDBC types, and do not require the return of result sets from the server, you should probably be fine.

Similar Messages

  • Workaround for using Oracle JDBC extension with WLS pooling

    Reading the newsgroup I saw that many of us encountered the problems
    with ClassCastException when tried to use Oracle JDBC extension
    with WLS pooling. I also had.
    In this case BEA recommends to use dangerous
    method getVendorConnection() which exposes
    the physical connection object to your code.
    Yes it's really dangerous because of unsafe usage may breaks
    WLS pooled connection(s).
    Moreover, this practice will make your JDBC code
    unportable (your JDBC code in addition to Oracle dependence
    became Weblogic dependent):
    void doSmth() {
    Connection con = ...;
    Connection vCon = ((WLConnection)con).getVendorConnection();
    // + mess of usage con in one places and vCon in others
    // (where Oracle extensions are needed)
    // !Don't forget to don't close vCon!
    Sux.
    I found the workaround.
    Introduction
    ============
    Yes the real cause of ClassCastException is that
    in depth of Oracle driver the casting
    to class oracle.jdbc.driver.OracleConnection
    (not to interface oracle.jdbc.OracleConnection)
    is performed.
    Someone can say that this is bug or pure desing.
    Weblogic pooled connection provide dynamic
    implementation for all public interfaces
    which real physical (wrapped) connection object implements.
    Great feature!
    But I guess that all interface methods implemented
    by simple call-delegation to physical (wrapped) connection object.
    In case of oracle.jdbc.OracleConnection interface
    this approach doesn't work for at least one its method:
    public OracleConnection unwrap()
    WLS pooled connection shoudn't implement this method by
    delegation to physical connection object BUT should
    return physical connection object itself!
    // Wrong implementation of unwrap()
    // delegation is used
    public OracleConnection unwrap() {
    return physicalConnection.unwrap();
    // Right implementation of unwrap()
    // physical connection returned
    public OracleConnection unwrap() {
    return physicalConnection;
    Workaround
    ==========
    1. Develop your own OracleConnection wrapper class:
    import oracle.jdbc.OracleConnection;
    import weblogic.jdbc.extensions.WLConnection;
    public class MyOracleConnectionImpl implements OracleConnection {
    private OracleConnection con;
    public MyOracleConnectionImpl(OracleConnection connection)
    throws SQLException
    this.con = connection;
    public OracleConnection unwrap() {
    return (OracleConnection)
    ((WLConnection)con).getVendorConnection();
    /* Implement all other methods by delegation to con object */
    2. Don't get Connections directly from DataSource --
    develop your own simple (may be static) utility
    class which retrives Connections from dataSource
    and returns them wrapped into your MyOracleConnectionImpl
    to your code from some method:
    puclic abstract class MyConnectionSource {
    public static Connection getConnection() {
    Connection con = // get it from DataSource
    return new MyOracleConnectionImpl((OracleConnection)con);
    3. Add attribute RemoveInfectedConnectionsEnabled="false"
    to definition of your JDBCConnectionPool within config.xml
    You may do it because of you `safely` use vendorConnection --
    you don't expose it to application code.
    4. Enjoy the Oracle JDBC extensions in your code!
    Example:
    Connection con = MyConnectionSource.getConnection;
    ArrayDescriptor add =
    ArrayDescriptor.createDescriptor("your_type", con);
    Hope it helps to someone.
    Best regards,
    Eugene Voytitsky

    Hello Eugene Voytitsky,
    Thanks Eugene Voytitsky for your idea
    I have tried the solution suggested by You, but it did not work.
    It still throws ClassCastException.
    I am sorry for posting the whole code of two classes below.
    I did this to give you more clarity.
    I am also indicating the place where the exception was thrown..
    Please let me know if I am doing something wrong.
    OracleConnection Wrapper class
    package ejbTesting;
    // sql imports
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.sql.SQLWarning;
    import java.sql.Statement;
    // util imports
    import java.util.Map;
    import java.util.Properties;
    // imports from Oracle Driver Classes
    import oracle.jdbc.OracleConnection;
    import oracle.jdbc.OracleOCIFailover;
    import oracle.jdbc.OracleSavepoint;
    // import from Weblogic extensions
    import weblogic.jdbc.extensions.WLConnection;
    public class WeblogicConnectionWrapper implements OracleConnection
         // oracle connection object
         private OracleConnection connection;
         public WeblogicConnectionWrapper (OracleConnection orclConnection)
              try
                   this.connection = orclConnection;
              catch(Exception unexpected )
                   unexpected.printStackTrace();
         public OracleConnection unwrap()
              try
              // The datasource returns a weblogic.jdbc.pool.Connection
              // This needs to be type casted to weblogic.jdbc.extensions.WLConnection
              // Only this weblogic.jdbc.extensions.WLConnection CAN BE type casted
              // to OracleConnection
         return (OracleConnection) ((WLConnection) connection).getVendorConnection();
         catch(Exception sqlException )
              sqlException.printStackTrace ();
              return null;
         /* Implement all other methods by delegation to connection object */      
    public Connection _getPC()
    return connection._getPC();
    public void archive(int i, int j, String s)
    throws SQLException
    connection.archive(i, j, s);
    public void assertComplete()
    throws SQLException
    connection.assertComplete();
    public void clearWarnings()
    throws SQLException
    connection.clearWarnings();
    public void close()
    throws SQLException
    connection.close();
    public void commit()
    throws SQLException
    connection.commit();
    public Statement createStatement()
    throws SQLException
    return connection.createStatement();
    public Statement createStatement(int i, int j)
    throws SQLException
    return connection.createStatement(i, j);
    public boolean getAutoClose()
    throws SQLException
    return connection.getAutoClose();
    public boolean getAutoCommit()
    throws SQLException
    return connection.getAutoCommit();
    public CallableStatement getCallWithKey(String s)
    throws SQLException
    return connection.getCallWithKey(s);
    public String getCatalog()
    throws SQLException
    return connection.getCatalog();
    public boolean getCreateStatementAsRefCursor()
    return connection.getCreateStatementAsRefCursor();
    public int getDefaultExecuteBatch()
    return connection.getDefaultExecuteBatch();
    public int getDefaultRowPrefetch()
    return connection.getDefaultRowPrefetch();
    public Object getDescriptor(String s)
    return connection.getDescriptor(s);
    public boolean getExplicitCachingEnabled()
    throws SQLException
    return connection.getExplicitCachingEnabled();
    public boolean getImplicitCachingEnabled()
    throws SQLException
    return connection.getImplicitCachingEnabled();
    public boolean getIncludeSynonyms()
    return connection.getIncludeSynonyms();
    public Object getJavaObject(String s)
    throws SQLException
    return connection.getJavaObject(s);
    public DatabaseMetaData getMetaData()
    throws SQLException
    return connection.getMetaData();
    public Properties getProperties()
    return connection.getProperties();
    public boolean getRemarksReporting()
    return connection.getRemarksReporting();
    public boolean getRestrictGetTables()
    return connection.getRestrictGetTables();
    public String getSQLType(Object obj)
    throws SQLException
    return connection.getSQLType(obj);
    public String getSessionTimeZone()
    return connection.getSessionTimeZone();
    public int getStatementCacheSize()
    throws SQLException
    return connection.getStatementCacheSize();
    public PreparedStatement getStatementWithKey(String s)
    throws SQLException
    return connection.getStatementWithKey(s);
    public int getStmtCacheSize()
    return connection.getStmtCacheSize();
    public short getStructAttrCsId()
    throws SQLException
    return connection.getStructAttrCsId();
    public boolean getSynchronousMode()
    return connection.getSynchronousMode();
    public int getTransactionIsolation()
    throws SQLException
    return connection.getTransactionIsolation();
    public Map getTypeMap()
    throws SQLException
    return connection.getTypeMap();
    public String getUserName()
    throws SQLException
    return connection.getUserName();
    public boolean getUsingXAFlag()
    return connection.getUsingXAFlag();
    public SQLWarning getWarnings()
    throws SQLException
    return connection.getWarnings();
    public boolean getXAErrorFlag()
    return connection.getXAErrorFlag();
    public boolean isClosed()
    throws SQLException
    return connection.isClosed();
    public boolean isLogicalConnection()
    return connection.isLogicalConnection();
    public boolean isReadOnly()
    throws SQLException
    return connection.isReadOnly();
    public String nativeSQL(String s)
    throws SQLException
    return connection.nativeSQL(s);
    public Object openJoltConnection(String s, short word0, short word1)
    return connection.openJoltConnection(s, word0, word1);
    public void oracleReleaseSavepoint(OracleSavepoint oraclesavepoint)
    throws SQLException
    connection.oracleReleaseSavepoint(oraclesavepoint);
    public void oracleRollback(OracleSavepoint oraclesavepoint)
    throws SQLException
    connection.oracleRollback(oraclesavepoint);
    public OracleSavepoint oracleSetSavepoint()
    throws SQLException
    return connection.oracleSetSavepoint();
    public OracleSavepoint oracleSetSavepoint(String s)
    throws SQLException
    return connection.oracleSetSavepoint(s);
    public int pingDatabase(int i)
    throws SQLException
    return connection.pingDatabase(i);
    public CallableStatement prepareCall(String s)
    throws SQLException
    return connection.prepareCall(s);
    public CallableStatement prepareCall(String s, int i, int j)
    throws SQLException
    return connection.prepareCall(s, i, j);
    public CallableStatement prepareCallWithKey(String s)
    throws SQLException
    return connection.prepareCallWithKey(s);
    public PreparedStatement prepareStatement(String s)
    throws SQLException
    return connection.prepareStatement(s);
    public PreparedStatement prepareStatement(String s, int i, int j)
    throws SQLException
    return connection.prepareStatement(s, i, j);
    public PreparedStatement prepareStatementWithKey(String s)
    throws SQLException
    return connection.prepareStatementWithKey(s);
    public void purgeExplicitCache()
    throws SQLException
    connection.purgeExplicitCache();
    public void purgeImplicitCache()
    throws SQLException
    connection.purgeImplicitCache();
    public void putDescriptor(String s, Object obj)
    throws SQLException
    connection.putDescriptor(s, obj);
    public void registerApiDescription(String s, short word0, short word1, String
    s1)
    connection.registerApiDescription(s, word0, word1, s1);
    public void registerSQLType(String s, Class class1)
    throws SQLException
    connection.registerSQLType(s, class1);
    public void registerSQLType(String s, String s1)
    throws SQLException
    connection.registerSQLType(s, s1);
    public void registerTAFCallback(OracleOCIFailover oracleocifailover, Object
    obj)
    throws SQLException
    connection.registerTAFCallback(oracleocifailover, obj);
    public void rollback()
    throws SQLException
    connection.rollback();
    public void setAutoClose(boolean flag)
    throws SQLException
    connection.setAutoClose(flag);
    public void setAutoCommit(boolean flag)
    throws SQLException
    connection.setAutoCommit(flag);
    public void setCatalog(String s)
    throws SQLException
    connection.setCatalog(s);
    public void setCreateStatementAsRefCursor(boolean flag)
    connection.setCreateStatementAsRefCursor(flag);
    public void setDefaultExecuteBatch(int i)
    throws SQLException
    connection.setDefaultExecuteBatch(i);
    public void setDefaultRowPrefetch(int i)
    throws SQLException
    connection.setDefaultRowPrefetch(i);
    public void setExplicitCachingEnabled(boolean flag)
    throws SQLException
    connection.setExplicitCachingEnabled(flag);
    public void setImplicitCachingEnabled(boolean flag)
    throws SQLException
    connection.setImplicitCachingEnabled(flag);
    public void setIncludeSynonyms(boolean flag)
    connection.setIncludeSynonyms(flag);
    public void setReadOnly(boolean flag)
    throws SQLException
    connection.setReadOnly(flag);
    public void setRemarksReporting(boolean flag)
    connection.setRemarksReporting(flag);
    public void setRestrictGetTables(boolean flag)
    connection.setRestrictGetTables(flag);
    public void setSessionTimeZone(String s)
    throws SQLException
    connection.setSessionTimeZone(s);
    public void setStatementCacheSize(int i)
    throws SQLException
    connection.setStatementCacheSize(i);
    public void setStmtCacheSize(int i)
    throws SQLException
    connection.setStmtCacheSize(i);
    public void setStmtCacheSize(int i, boolean flag)
    throws SQLException
    connection.setStmtCacheSize(i, flag);
    public void setSynchronousMode(boolean flag)
    connection.setSynchronousMode(flag);
    public void setTransactionIsolation(int i)
    throws SQLException
    connection.setTransactionIsolation(i);
    public void setTypeMap(Map map)
    throws SQLException
    connection.setTypeMap(map);
    public void setUsingXAFlag(boolean flag)
    connection.setUsingXAFlag(flag);
    public void setWrapper(OracleConnection oracleconnection)
    connection.setWrapper(oracleconnection);
    public void setXAErrorFlag(boolean flag)
    connection.setXAErrorFlag(flag);
    public void shutdown(int i)
    throws SQLException
    connection.shutdown(i);
    public void startup(String s, int i)
    throws SQLException
    connection.startup(s, i);
    Util class to get Wrapped Connections from
    datasource
    package ejbTesting;
    // j2ee imports
    import javax.naming.InitialContext;
    import javax.sql.DataSource;
    // sql imports
    import java.sql.Connection;
    // imports from Oracle Driver Classes
    import oracle.jdbc.OracleConnection;
    * Wrapper class for the DataSource Connection from Weblogic pool
    public class DataSourceConnectionWrapper
         // datasource variable
         private static transient DataSource datasource = null;
         private static String dbName = "jdbc/workbench";
    * Method that returns the database connection
         public static Connection getConnection()
              try
                   // initialsing the datasource object
                   initialiseDataSource ();
                   // Getting a connection from the datasource
                   Connection con = datasource.getConnection( );
                   // wrapping it custom wrapper class and
                   // returning the connection object
                   return new WeblogicConnectionWrapper((OracleConnection)con);
              catch(Exception exception )
                   exception.printStackTrace();
                   return null;
         private static void initialiseDataSource( ) throws Exception
    if ( datasource == null )
    try
    InitialContext ic = new InitialContext( );
    datasource = (DataSource) ic.lookup( dbName );
    catch (Exception ne )
    throw new Exception( "NamingException while looking up DataSource with
    JNDI name" +
    dbName + ": \n" + ne.getMessage( ) );
    Exception Stack Trace
    The line 46 in DataSourceConnectionWrapper
    corresponds to
    return new WeblogicConnectionWrapper((OracleConnection)con);
    Which I feel is logical as the connection which we get from Weblogic
    datasource cannot be type casted to OracleConnection
    java.lang.ClassCastException: weblogic.jdbc.pool.Connection
    at ejbTesting.DataSourceConnectionWrapper.getConnection(DataSourceConnectionWrapper.java:46)

  • Using -pack + -standalone switches with Weblogic ?

    Hi,
    Does anyone know as to whats the issue with using -pack + -standalone switches with Weblogic ? Its been mentioned in the documentation that its not advisable to use those in combination when we build and EAR. We have been doing this in our project for atleast a month now and have not come across any issue due to this.
    Please share your thoughts.
    Thanks,
    -Naga

    Hi,
    Does anyone know as to whats the issue with using -pack + -standalone switches with Weblogic ? Its been mentioned in the documentation that its not advisable to use those in combination when we build and EAR. We have been doing this in our project for atleast a month now and have not come across any issue due to this.
    Please share your thoughts.
    Thanks,
    -Naga

  • Using saaj 1.2 with weblogic 8.1

    according to .This link, weblogic 8.1 implements SAAJ 1.1 version. How can i use SAAJ 1.2 with weblogic 8.1?
    I removed webservices.jar from startweblogic.bat script. then i put saaj-api.jar and saaj-impl.jar (from JWSDP 1.4) in app server's classpath. Thirdly, i deployed an EJB that uses SAAJ 1.2 . However, I am getting following exception which shows that the bean is still using weblogic's implementation of SAAJ i.e. version 1.1.
    java.lang.IllegalArgumentException: endpoint should be String or URL
    at weblogic.webservice.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:43)[b]
    how can i get rid of this and use SOAPConnection from saaj-impl.jar library????

    Hi,
    just run the SetEnv.cmd and check in classpath,it might still have the webservice.jar.
    Probably remove it from setEnv.cmd.
    Regards,
    Manish

  • Account Password Changed When Using OCI Drivers With WebLogic 6.0

    Hello all,
    Could be I am losing my mind but I saw some strange bahavior and I was wondering if anyone could offer an explination. We're running BEA WL6.0sp2 on an HPUX box with both an 8.1.7 client and server installation for development. We noticed that when we try to use the OCI driver to connect to our database, the password for our account is being changed on connection. This is definitely repeatable as we demonstrated it for the DBAs while they yelled at us. I highly doubt there is anything in WL that would cause the problem and everything works fine with the Thin drivers, with the JDrivers provided by BEA and with the credentials from SQL+.
    Our problem is we need the Layer 2 OCI support. Is there something in the OCI client installation that would cause this behavior?

    Hello all,
    Could be I am losing my mind but I saw some strange bahavior and I was wondering if anyone could offer an explination. We're running BEA WL6.0sp2 on an HPUX box with both an 8.1.7 client and server installation for development. We noticed that when we try to use the OCI driver to connect to our database, the password for our account is being changed on connection. This is definitely repeatable as we demonstrated it for the DBAs while they yelled at us. I highly doubt there is anything in WL that would cause the problem and everything works fine with the Thin drivers, with the JDrivers provided by BEA and with the credentials from SQL+.
    Our problem is we need the Layer 2 OCI support. Is there something in the OCI client installation that would cause this behavior?

  • How to add support for new JDBC Drivers in WebLogic Server?

    Hi!
    I am using WebLogic Server 10.
    As we know,WebLogic Server contains some jdbc drivers itself,but if we want to use another drivers besides them,what can we do?(I am using Oracle 11g,but WebLogic Server 10 doesn't contain JDBC support for it.)
    Just copy the .jar files of the drivers to the directoty "WL_HOME/server/lib" or need to configure something else?
    Thanks!
    Huang

    Hi!
    I am using WebLogic Server 10.
    As we know,WebLogic Server contains some jdbc drivers itself,but if we want to use another drivers besides them,what can we do?(I am using Oracle 11g,but WebLogic Server 10 doesn't contain JDBC support for it.)
    Just copy the .jar files of the drivers to the directoty "WL_HOME/server/lib" or need to configure something else?
    Thanks!
    Huang

  • Oracle JDBC Drivers with Tomcat

    I try to connect to Oracle DB with the JDBC Drivers throught Tomcat JNDI access.
    I've tried with the oracle.jdbc.driver.OracleDriver and I have an UnsupportedOperationException when calling the getConnection() method on ma dataSource ref.
    So I've tried with the oracle.jdbc.pool.OracleConnectionPoolDataSource and I have an java.sql.SQLException:
    Cannot create JDBC driver of class
    'oracle.jdbc.pool.OracleConnectionPoolDataSource' for connect URL
    'jdbc:oracle:thin:@(description=(address=(host=meditws322)(protocol=tcp)(port=1521)
    )(connect_data=(sid=HABILLE)))'
    Please help I'm about to break down

    Thanks for your reply. I use Oracle JDBC driver. The XSQLConfig.xml was changed to have the following setting:
    <connection-manager>
    <factory>oracle.xml.xsql.XSQLOracleDatasourceConnectionManager</factory>
    </connection-manager>
    I'm using Tomcat 4.1.x and Apache Commons DBCP Datasources with org.apache.commons.dbcp.BasicDataSourceFactory. The configuration file does set driverClassName to oracle.jdbc.driver.OracleDriver. All other queries embedded in .xsql files work great, I only have issues with queries containing CURSOR() statements. If I switch back to built-in database connectivity, by changing XSQLConfig.xml and connection parameters in .xsql files everything is working again. When I attempt to use DataSources, I get things like this "oracle.jdbc.driver.OracleResultSetImpl@15780d9" instead of nested XML. The non-nested portion of XML looks fine also, so it is retrieving the data from the database properly. Please let me know if I can provide any additional information that could help in resolving this. Thanks in advance!
    -M-

  • CFMX8 - Enterprise OR Standard to use DataDirect JDBC drivers?

    Simple question here, I hope? I am migrating an application
    to CFMX8. This app connects to Informix. The best performance I've
    seen so far to do so is using DataDirect's JDBC driver. What I know
    is that DataDirect created a JDBC driver that ships with CFMX. What
    I don't know is why it
    seems CF somehow restricts access to that driver to
    Enterprise edition?!? Below are steps I have done.
    Using tech note
    shown
    here I did install the updated Macromedia drivers and created a
    DSN to the Informix database, but upon trying to save the DSN
    details, an error appeared stating:
    quote:
    java.sql.SQLException: Use of Macromedia JDBC Drivers is
    restricted. Drivers can only be used with Macromedia server
    products. Please check that your license supports the requested
    driver.
    This is pretty vague! Can anyone confirm that this is ONLY a
    Standard Ed. vs. Enterprise Ed. issue? Or is something else the
    matter?

    The Macromedia drivers are not available in standard edition
    of ColdFusion. They are availbale in enterprise and developer
    edition of ColdFusion.

  • A Tip for using EJB 3.0 with WebLogic Ant Tasks

    I started out writing this up as a problem, but then I found the answer so I'm, posting a tip instead.
    When I tried to write an EJB [stateless] using EJB 3.0 in my legacy Weblogic ear project I started getting this error:
    <pre>
    No EJBs found in the ejb-jar file 'test'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation.
    </pre>
    This is why: wlcompile will put the class files in the App-Inf/classes directory unless it finds an ejb-jar.xml file in the META-INF directory for the module it is working on. With EJB 3.0, I wasn't using an ejb-jar.xml file because it was unnecessary. Later, Appc runs and it complains <b>because there are no classes module directory, they went into the shared ear folder instead.</b>
    Here's I how it working again: Use javac [not wlcompile] to compile the EJB 3.0 module and make sure that the class files go into the correct module directory. Then you can use wlappc to generate all the associated files for the EJB. I have sucessfully deployed an ear file that uses both EJB 2.x and EJB 3.0 with this approach.
    I wish Weblogic's own ejb3.0 sample application used their split directory deployment.
    Good Luck.
    John Aronson

    Hi John,
    I am working on development an enterprise application using EJB 3.0 on Weblogic 10.
    While developing, I am keeping all my classes (from ejb's as well as web) into APP-INF/classes directory. It is working fine for Web and ejb 2.0 packages, but ejb 3.0 packages, I get the following error when I keep my ejb 3.0 beans classes in APP-INF/classes directory.
    No EJBs found in the ejb-jar file 'customer'. Please ensure the ejb-jar contains EJB declarations via an ejb-jar.xml deployment descriptor or at least one class annotated with the @Stateless, @Stateful or @MessageDriven EJB annotation.
    One solution is to keep the classes under customer ejb directory, but I wan tto keep all the classes in APP-INF/classes directory so that when using Eclipse IDE I can output all compiled sources into APP-INF/classes directory.
    Has anyone faced this situation? Any suggestions to fix this issue?

  • Using Dynamic JDBC Credentials with jazn security (web.xml) in BC

    I have followed the document “How To Support Dynamic JDBC Credentials” http://www.oracle.com/technology/products/jdev/howtos/10g/dynamicjdbchowto.html to connect to the database using Business Components, as the user who logs in the application. (Proxy)
    The only matter is that as I could see, I cannot use the application server integrated security (with roles) to protect the web resources.
    The main objective is to protect the web resources using Declarative J2EE authentication and authorization using the Data Base users (and roles). I have implemented the solution for the first part (authentication) using DBLoginModule (DBSystemLoginModule) from Frank Nimphius and Duncan Mills, it’s working OK, but I need the second part; how to use the user that is logged in as the PROXY user of the BC connection.
    Using the DBLoginModule, and the “How To Support Dynamic JDBC Credentials” separates works fine, but I can’t make them work together.

    Frank, Thanks a lot for your quick answer.
    "Maybe you should look at using database proxy users with ADF BC so you can use the J2EE authenticated user principal as the database schema to connect through. I am working on documenting this approach, which however needs some more time of writing and testing."
    Yes, that's exactly what I need!!!
    Can you give me some tips about how to do that.. Do you have any idea of when you will finish that document?.
    By the way, I'm using FORM authentication, but I don't know how to modify what’s in the “How To Support Dynamic JDBC Credentials” document, to use the J2EE authenticated user principal as the database schema to connect through.
    One of the problems is that when using this approach, I cannot get the J2EE security to redirect to the login page...
    Any help would be really appreciated

  • Mysql jdbc drivers with tomcat?

    I am having trouble getting mySQL drivers to work on Tomcat. I have used the driver before with iPlanet Web Server, but I can't seem to get it to work with Tomcat. I am getting this error:
    org.apache.jasper.JasperException: In <driver>, invalid driver class name: "org.gjt.mm.mysql.Driver"
    The jar for the driver is in my WEB-INF/lib directory of my webapp. Seems like it isn't picking up the jar in the classpath. It was my understanding that jars in this dir were loaded automatically. Is there some way to log the classpath loaded in Tomcat?

    run this in one of your jsps and see whats in your classpath.
    System.getProperty("java.class.path",".");
    I've never a had a problem with it before, but I'm using
    mysql-connector-java-2.0.14

  • Using unbranded nVidia drivers with OC-edition MSI cards

    Hello,
    I'm using MSI GeForce 8800GT 512MB OC edition (NX8800GT T2D512E-OC) with branded MSI drivers.
    Since MSI doesn't exactly release new drivers on daily basis (latest release - 175.16, 7/21) I was considering using unbranded drivers directly from nVidia.
    I'd like to ask if there would/could be any performance decrease or any issues related to using unbranded drivers with my card.
    My hardware retailer told me I *must* use branded drivers as it is an OC edition card, but he already stuffed me with bullcrap before so I'm asking here to confirm (or disconfirm, hopefully).
    Thanks for any help in advance.

    You can use any drivers
    "My hardware retailer told me I *must* use branded drivers as it is an OC edition card, but he already stuffed me with bullcrap before so I'm asking here to confirm (or disconfirm, hopefully)."
    Yes, that's rubbish

  • Using Cisco  LocalDirector 400 with WebLogic

              Does anyone have any feedback on using Cisco LocalDirector with WebLogic 8.1 cluster
              - especially wityh SSL persistence
              Thanks
              Henry
              

    Is there any specific issue you are trying to resolve?
              "Henry Nghiem" <[email protected]> wrote in message
              news:40f548d5$1@mktnews1...
              >
              > Does anyone have any feedback on using Cisco LocalDirector with WebLogic
              8.1 cluster
              > - especially wityh SSL persistence
              >
              > Thanks
              > Henry
              

  • How to use Multiple JDBC Drivers?

    Hi,
    I'm working with an application that connects to an Oracle 8 database and Oracle 10 databases as a single user/schema and then the application users all share the single Oracle user. When we use an Oracle 8 JDBC driver, then a module that inserts a large number of records (1500+) into an oracle table behaves inconsistently and either times out, pauses inserting records for exactly 1 hour, or throws an error. It also seems somewhat inconsistent from user to user.
    The problem goes away when we use an Oracle 10 or Oracle 11 JDBC driver. However, the Oracle 10 JDBC driver has a problem with truncating the hh:mi:ss from datetime column types to 00:00:00. This is a known Oracle error and I know there is a flag that can fix this with the Oracle 10 driver. However, with the way the JDBC driver gets installed in the application, we are unable to set that flag.
    Oracle 11 JDBC driver also doesn't have the Oracle 8 issue inserting a large number of records. However, we need to connect to an Oracle 8 database and Oracle 11 JDBC does not support that. The database is still active but being retired soon so no chance of upgrading to a newer Oracle version.
    I asked on the application forum (it's SAP Manufacturing Intelligence and Integration - MII) and was told the following. Data Server is a name for the connection to the database.
    "If the class packages are the same (assuming so since all of the oracle drivers I've seen use the same driver) then you can't have 2 at the same time, since they will overlap and you can't prioritize or point one data server to 8 and the other to 11."
    My experiments with trying to use two drivers have also shown this to be the case for what I tried.
    Any ideas or thoughts of how to make this work? We are using a JDK 1.5.
    Thanks for the help.
    Kerby Johnson

    The most reliable way would be to load each driver (and all code using it) using its own classloader.
    But that would likely be overly complicated.
    The most viable solution will likely be (especially as this is a short term project, you say it's going to be retired soon) to ensure a commit after every smaller subset of the total data volume and keep using the Oracle 8 drivers.
    Try forcing a commit after say every 100 records and see if you still have the timeout problems. Most likely this will take care of your problems at the cost of a slight performance decrease (but better somewhat less than optimal performance than risk database corruption or crashing applications, right?).

  • Using Oracle thin driver with Weblogic 6.1

    hi all,
    i am trying to create a ConnectionPool using WLS6.1 and Oracle 8.0.5.
    Since i cannot use the weblogic driver (due to the old version of oracle that
    i have)
    i am trying to use instead the oracle thin driver.
    i configured my pool as follows:
    URL jdbc:oracle:[email protected]:1521:ORC1
    Driver oracle.jdbc.Driver.OracleDriver
    Propeties user=SCOTT
    when i try to assing the created pool to a server (using the 'Target' link),
    i always got this exception
    weblogic.management.DeploymentException: Error creating connection pool - with
    n
    ested exception:
    [weblogic.common.ResourceException: Cannot load driver class: oracle.jdbc.Driver
    .OracleDriver]
    at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:110)
    at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
    at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
    at java.lang.reflect.Method.invoke(Native Method)
    at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
    at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    .java:592)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
    at $Proxy7.addDeployment(Unknown Source)
    at weblogic.management.internal.DynamicMBeanImpl.updateDeployments(Dynam
    icMBeanImpl.java:1448)
    at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:858)
    at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:810)
    at weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(Conf
    igurationMBeanImpl.java:288)
    at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1356)
    at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1331)
    at weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:
    303)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
    at $Proxy75.setTargets(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at weblogic.management.console.info.FilteredMBeanAttribute.doSet(Filtere
    dMBeanAttribute.java:89)
    at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(D
    oEditMBeanAction.java:116)
    at weblogic.management.console.actions.internal.ActionServlet.doAction(A
    ctionServlet.java:167)
    at weblogic.management.console.actions.internal.ActionServlet.doPost(Act
    ionServlet.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool - with
    nested exception:
    [weblogic.common.ResourceException: Cannot load driver class: oracle.jdbc.Driver
    .OracleDriver]]
    at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:494)
    at weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:44>
    However, i set the CLASSPATH & PATH of my startWebLogic.cmd as follows:
    set PATH=c:\orant\bin;d:\bea\wlserver6.1\bin\oci817_8;.\bin;%PATH%
    set CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;.\samples\eval\cloudscape\lib\cloudscape.jar;.\config\examples\serverclasses;c:\orant\jdbc\lib\classes111.zip
    AND, i have written a small program that uses JDBC (without weblogic) to query
    a table
    on the Oracle (using the pool's URL in the properties for getting the Connection
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORC1", "scott",
    "tiger");
    and that program works fine.
    Can anyone tell me what is wrong?? it seems that everything is in order (with
    respect to CLASSPATH, PATH etc..)
    hope someone can solve my problem
    thanx and regards
    marco

    your url should be
    jdbc:oracle:thin:@127.0.0.1:1521:ORC1
    notice the ':' before the '@'.
    sree
    "Marco" <[email protected]> wrote in message
    news:[email protected]...
    Hi Sree,
    You have to place the classes11.zip file in the beginning of the classpath.i did it. my CLASSPATH is now
    CLASSPATH=c:\orant\jdbc\lib\classes111.zip;.;.\lib\weblogic_sp.jar;.\lib\web
    logic.jar;.\samples\eval\cloudscape\lib\cloudscape.jar;.\config\examples\ser
    verclasses
    But now, when i assign the target, the exception is:
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating
    connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool -
    with
    nested exception:
    [weblogic.common.ResourceException: weblogic.common.ResourceException:
    Could not create pool connection. The DBMS driver exception was:
    java.sql.SQLException: Sub Protocol must be specified in connection URL
            at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:352)
            at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:102)
            at
    weblogic.jdbc.common.internal.ConnectionEnvFactory.makeConnection(Con
    nectionEnvFactory.java:192)
            at
    weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(Con
    nectionEnvFactory.java:134)
            at
    weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllo
    cator.java:698)
            at
    weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.j
    ava:282)
            at
    weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.j
    ava:629)
            at
    weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:107)
            at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
            at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
            at java.lang.reflect.Method.invoke(Native Method)
            at
    weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
            at
    weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    java:592)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
            at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
            at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
            at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
            at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
            at $Proxy8.addDeployment(Unknown Source)
            at weblogic.management.internal.DynamicMB>
    what is SubProtocol???
    my ConnectionPool is configured as follows:
    Name:     MyJDBC Connection Pool
    URL :     jdbc:oracle:[email protected]:1521:ORC1
    Driver:   oracle.jdbc.driver.OracleDriver
    Properties: user=SCOTT
    Password  : tiger
    can u help me???
    thanx in advance and regards
       marco
    >
    >
    at
    weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:110)
    at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:329)
    at
    weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(Depl
    oymentTarget.java:144)
    at java.lang.reflect.Method.invoke(Native Method)
    at
    weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMB
    eanImpl.java:608)
    at
    weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl
    java:592)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:352)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:484)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:449)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:190)
    at $Proxy7.addDeployment(Unknown Source)
    at
    weblogic.management.internal.DynamicMBeanImpl.updateDeployments(Dynam
    icMBeanImpl.java:1448)
    at
    weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:858)
    at
    weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBe
    anImpl.java:810)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(Conf
    igurationMBeanImpl.java:288)
    at
    com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1356)
    at
    com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.j
    ava:1331)
    at
    weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:
    303)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:185)
    at $Proxy75.setTargets(Unknown Source)
    at java.lang.reflect.Method.invoke(Native Method)
    at
    weblogic.management.console.info.FilteredMBeanAttribute.doSet(Filtere
    dMBeanAttribute.java:89)
    at
    weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(D
    oEditMBeanAction.java:116)
    at
    weblogic.management.console.actions.internal.ActionServlet.doAction(A
    ctionServlet.java:167)
    at
    weblogic.management.console.actions.internal.ActionServlet.doPost(Act
    ionServlet.java:85)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:265)
    at
    weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
    pl.java:200)
    at
    weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
    rvletContext.java:2456)
    at
    weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
    pl.java:2039)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
    --------------- nested within: ------------------
    weblogic.management.DistributedOperationUpdateException: Error creating
    connecti
    on pool - with nested exception:
    [weblogic.management.DeploymentException: Error creating connection pool
    with
    nested exception:
    [weblogic.common.ResourceException: Cannot load driver class:
    oracle.jdbc.Driver
    OracleDriver]]
    at
    weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBean
    s(ConfigurationMBeanImpl.java:494)
    at
    weblogic.management.internal.ConfigurationMBeanImpl.invoke(Configurat
    ionMBeanImpl.java:354)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    55)
    at
    com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:15
    23)
    at
    weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:44>
    However, i set the CLASSPATH & PATH of my startWebLogic.cmd as follows:
    set PATH=c:\orant\bin;d:\bea\wlserver6.1\bin\oci817_8;.\bin;%PATH%
    set
    CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;.\samples\eval\cloudsc
    a
    pe\lib\cloudscape.jar;.\config\examples\serverclasses;c:\orant\jdbc\lib\clas
    ses111.zip
    AND, i have written a small program that uses JDBC (without weblogic)
    to
    query
    a table
    on the Oracle (using the pool's URL in the properties for getting the
    Connection
    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ORC1",
    "scott",
    "tiger");
    and that program works fine.
    Can anyone tell me what is wrong?? it seems that everything is in order
    (with
    respect to CLASSPATH, PATH etc..)
    hope someone can solve my problem
    thanx and regards
    marco

Maybe you are looking for

  • How can I speed up PSCS3 (PS10.01) ?

    I'm very frustrated with Photoshop CS3 on XP-Pro and would really like to learn if there is some why to get it to work as well as PSCS2 (9.0.2)? Example: I open a white canvas 20x 30" @ 300ppi. On this I 'Place' 4 small websized (400x600px) images as

  • How to use a presentation variable in filter conditions

    Hi, I have set a presentation variable "day" on my dashboard prompt containing a date column. I now need to use this presentation variable in the filter clause to restrict the dates between "day" and sysdate. So i apply the following SQL filter: wher

  • No sound from iTunes movie download, while playing on appletv, iPad, or other

    Downloaded a movie from iTunes. The video is fine; it displays on all iOS devices. However there is no sound while being played on any iOS device, appletv, iPad, iPad mini, iPhone, etc. How do I request another download that contains audio? Thanks, D

  • Posting payments REMADV

    I am attempting to post payments into SAP from a POS system. I am attempting to use REMADV with process code REMC. I believe this is a payment advice with clearning (which I believe posts payments to a customer account ??). Please advise if that is c

  • Regarding MS Access Database details....

    Hi,        I am working on RFC to JDBC interface. Currently my Database tables are not created, so planning to do testing on MS Access database. While creating JDBC communication channel, it is asking JDBC driver and Connection details. Could you ple