JDBC URL problem

hello to all!
Im a newbie in database programming using JDBC. I would like to ask for the format of URL of Sun's JDBC. I would also would like to know if it is possible to create a database from native java code. that would be my questions for now.
jeff

I would like to ask for the format of URL of Sun's JDBC. Depends on the DB and the JDBC driver used. If you use for example a MySQL DB [1] with the MySQL's own Connector/J driver [2], then the JDBC URL format is: jdbc:mysql://localhost:3306/databasename [3].
[1] http://www.mysql.com
[2] http://www.mysql.com/products/connector/j/
[3] http://dev.mysql.com/doc/refman/5.0/en/connector-j.html
I would also would like to know if it is possible to create a database from
native java code.Java EE 5 provides JPA, the Java Persistence API [4].
[4] http://java.sun.com/javaee/overview/faq/persistence.jsp

Similar Messages

  • Strange problem with JDBC URL

    Hi All,
    I don't know whether this is a known issue which has a workaround or I am doing something wrong. But this is the problem.
    I have a nice GUI application which takes the JDBC URL, Driver, User name and password and then takes the input and tries to establish a connection with the Database. I was trying it on MySQL and I encountered a problem.
    The general format of the JDBC URL for MySQL is "jdbc:mysql://<ip_address>:<port>/<db_name> and if I have MySQL running on 3306 and if I give the URL as:
    "jdbc:mysql://localhost:9001" (where my HSQL is running), then, it never gets the connection and the application stays there forever (the call never returns after the DriverManager.getConnection() statement). And if I give the port as something else (say 9898) where nothing is running, then the getConnection() doesn't send me a SQLException.
    What could be the problem?

    Are you saying that you're connecting using the
    MySQL driver to an HSQL database, and
    that this results in a hang (rather than a timeout)?
    Just to clarify that I've understood the problem.
    If so, it should be fairly easy to get a simple test
    scenario up and running independent from your "real"
    application. Have you tried this, and could you post
    the code if so?
    Dave.Hi Dave,
    Thank you very much trying,
    Sorry if my English was poor. I am not trying to connect to HSQLDB using the MySQL Driver.
    Actually, I am trying to connect to MySQL db using the MySQL driver, but the DriverManager.getConnection() method hangs when I...
    1. Give a wrong URL e.g(jdbc:mysql://localhost:9001/")
    2. Run my MySQL on default port (3306)
    3. And If I have HSQL or any other program that is listening at port 9001.
    The problem seems to be very strange. here's the code below, you can try out yourself...
    import java.sql.DriverManager;
    import java.sql.SQLException;
    public class Demo {
         public static void main(String[] args) {
              try {
                   Class.forName("com.mysql.jdbc.Driver");
                   DriverManager.getConnection("jdbc:mysql://localhost:9001/", "user", "password"); // <-- The call hangs here
              } catch (SQLException e) {
                   e.printStackTrace();
              } catch (ClassNotFoundException e) {
                   e.printStackTrace();
    }Remember to have your mysql*.jar file in your classpath while running. :)
    Thank you....

  • JDBC URL or not JDBC URL

    Hello experts,
    I have two WLS 10.3.5.0 running in dev mode: WLS_A and WLS_B.
    They both have the same database resource, with the same name, and the same JNDI as well. Each WLS resides on a different Linux machine.
    If I set, in the Applictation properties in Jdeveloper, the database properties as JDBC Datasource, I can only deploy on WLS_A, while If I set the database properties as JDBC URL, I can only deploy on WLS_B.
    Why on hearth I get this different behavior, even if the WLS servers do have the same version, and the database is declared in the same way on both ?
    Is there any other setting on the WLS I'm missing ? I would like to have the same behavior for both server..
    Regards,
    Sergio.

    Yeah sorry, I try to give a more detailed explanation:
    - The deployment are in both cases successful, but I get for both server, in the log file - the one generated by startWebLogic.sh - the following warning message:
    <17.02.2012 07:21 Uhr MEZ> <Warning> <oracle.adf.share.jndi.ReferenceStoreHelper> <BEA-000000> <Incomplete connection reference object for connection:myConn>
    After this message, on the WLS_A the application runs and continue without connection problems, while on WLS_B, after this message the application does not start, and the WLS complains that it can not resolve the JNDI connection.
    I have the same connection description on both servers, with the same JNDI name.
    From within JDeveloper, where I have the application, I set in the AppModule.xml the values for the configurations: AppModuleShared and AppModuleLocal.
    If I set AppModuleShared and AppModuleLocal to JDBC Datasource, I can deploy on both servers, and the application works on both WLS_A and WLS_B.
    If I set AppModuleShared and AppModuleLocal to JDBC URL, I can still deploy on both servers, but the application works only on WLS_A.
    Thanks so far for the answers, but I'm still baffled by this WLS behavior..
    Sergio.

  • JDBC URL can break config.xml

    Entering a JDBC URL of jdbc:mysql://foo.com/db?user=joe&password=smith
    will result in config.xml not being parsible after it is saved. The
    problem is that the ampersand needs to be translated into a character
    entity (&). I suppose other nasty character entities such as <
    should be translated too.
    Ben

    This problem has been acknowledged and engg is working on this issue.
    Thanks.
    Kumar
    Ben Eng wrote:
    Entering a JDBC URL of jdbc:mysql://foo.com/db?user=joe&password=smith
    will result in config.xml not being parsible after it is saved. The
    problem is that the ampersand needs to be translated into a character
    entity (&). I suppose other nasty character entities such as <
    should be translated too.
    Ben

  • Space in JDBC Url

    in the physical architecture of topology manger , when i try to insert the JDBC url for LDAP, the test connection failed and retourn this java error:
    "java.sql.SQLException: A NamingException occured saying: Cannot parse url: servizio,dc=abc,dc=net with this explanation: Cannot parse url: service,dc=abc,dc=net and this remaining name: null"
    the problem is in the name of LDAP's base search which contains spaces, like this
    "jdbc:snps:ldap?ldap_url=ldap://10.10.10.10:389/&ldap_password=KILAKMDJKKLHKJJJCDGRGPDB&ldap_basedn=ou=users,ou=account of service,dc=abc,dc=net"
    i try to escape the pace in the string "ou=account of service," with me most frequently escape char like "\" ora single or double quote and many other but were always wrong.
    someone know how can i resolve the problem? or which escape character can i use?
    Thank you
    Matteos
    Edited by: user6679008 on 26-ago-2010 6.13

    Ok, I've done this test in the past but we have an LDAP error 52e (invalid credentials)... but the same search with ldapsearch (unix command) does not have these problem.
    LDAP : error code 49 - 80090308 LdapErr: DSID-0C09030F, comment: AcceptSecurityContext error, data 52e ...
    Ex:
    ldapsearch -v -x -b 'dc=soft,dc=net' -wPASSWORD -D 'cn=USER,ou=users,ou=service account profile,dc=soft,dc=net' -h 130.130.30.1 -p 389
    Thanks a lot for your support.
    Carlo.
    PS
    The LDAP is an Active Directory
    Dev wrote:
    Carl ,
    The correct string should have been
    jdbc:snps:ldap?ldap_url=ldap://130.130.30.1:389/&ldap_password=KILAKMDJKKLHKJJJCDGRGPDB&ldap_basedn=dc=soft,dc=net
    and in the user provide cn=<what ever your cn is >,dc=soft,dc=net
    Please try this and let me knowEdited by: Carlito on 31-ago-2010 16.31
    Edited by: Carlito on 31-ago-2010 16.34

  • Unrecognized JDBC URL

    hi, all:
    i'm working in jdev 11.1.2.3
    i have created a simple adf app(one table for the moment) which works well only after i ALTER TABLE to add some columns.
    1.edit EO to add attribute from the newly altered table.
    --it's ok.
    2.edit the VO (or even delete the old VO to create a new one) based on the refreshed EO, to include new attributes.
    --in the QUERY tab for the VO, when press TEST AND EXPLAIN button, an error occured like this:
    "Error encountered:java.sql.SQLException: Unrecognized JDBC URL
    subtype: null"
    --but connection to the db in jdev is ok.
    3. if i ignore these alert and go on ,and run the jspx agian. errors in log file like this:
    JBO-27021: java.sql.SQLException, .....
    Caused by: java.sql.SQLException: invalid index ...
    Can anyone give helps?
    Thanks.

    I tried "synchnorizse the db changes" for EO, and related info:
    i changed the data type id of the EO from varchar2 to DBSequence, and when sync the EO, restored to the string type.
    but the problem remains.
    any ideas?
    Thanks.

  • Can't use JDBC URL for multiple LDAPs

    ColdFusion 8,0,1,195765 Enterprise (Trial)
    We use Oracle OID (LDAP) instead of tnsnames.ora to resolve database connection strings. This is how I specify one LDAP JDBC URL. On the CF admin page, Server Settings, Java and JVM, ColdFusion Class Path is set to C:\oracle\product\10.2.0\db_1\jdbc\lib\ojdbc14.jar. Under Data & Services, Data Sources, create a new source. Set JDBC URL to
    jdbc:oracle:thin:@ldap://mdaoid1.mycompany.com:389/mdad2,cn=OracleContext,dc=mycompany,dc= com
    where mdaoid1 is one of the two Oracle OID servers that resolve connection strings, and mdad2 is an entry in the two OID's sync'ed to each other. That works.
    According to many sources based on Google search for "space separated LDAP URLs", I should be able to add another LDAP server separated by space. Now I append " ldap://mdaoid2.mycompany.com:389/mdad2,cn=OracleContext,dc=mycompany,dc=com" (no quotes, added to indicate leading space) to that string. Upon clicking Submit, I get
    Connection verification failed for data source: orcl10g3
    java.sql.SQLException: For input string: "389 ldap:"
    The root cause was that: java.sql.SQLException: For input string: "389 ldap:"
    (orcl10g3 is the CF data source name I'm creating) Some say I need to replace space with %20 in the double LDAP URL. With %20, I get error
    Connection verification failed for data source: orcl10g3
    java.sql.SQLException: Io exception: JNDI Package failurejavax.naming.InvalidNameException: Invalid name: mdad2,cn=OracleContext,dc=mycompany,dc=com ldap://mdaoid2.mycompany.com:389
    The root cause was that: java.sql.SQLException: Io exception: JNDI Package failurejavax.naming.InvalidNameException: Invalid name: mdad2,cn=OracleContext,dc=mycompany,dc=com ldap://mdaoid2.mycompany.com:389
    Question: How do I add more than one LDAP server to the JDBC URL so I can achieve failover and load balance?
    Yong Huang
    yong321 at yahoo.com

    The message above was posted by me two years ago and was brought to my attention today. Here's a short update: The network team added a load balancer mdaoid in front of, and resolved to, mdaoid1 and mdaoid2 (in round-robin fashion). The problem described in this thread is bypassed because the JDBC URL can simply use one-OID format, in which mdaoid is used as the LDAP server.

  • ADF JSF URL problems...

    Hi All,
    I have the following requirement. Please could someone help me out?
    1) I have a dot net application into which I can log in with either the Canadian or US context. This is kind of multi-orging.
    2) Once logged in, the user needs to right click on a value in a panel inside this Windows dot net application and click a menu option.
    3) Once the option is clicked, a new JSF page will open. The URL for this JSF page will have the parameters such as the user country code plus the document number of the panel value.
    4) For this JSF page I am planning on an ADF JSF application. The application module for this application will have two database connections, basically two different schemas which are triggered based on the context information. These are already available in the bc4j.xcfg file.
    5) Based on the country parameter passed in the URL, I need to alternate the database connection information on the root application module created by the application between teh two database schemas using the bc4j.xcfg file in the Model project of the application. This needs to be done dynamically through the code.
    In order to fulfill the above requirement, I need to do the following:-
    1) As soon as the URL is triggered, the ADF application needs to read the URL parameters and set the context specific database schema of the application module without pressing a button or any other manual user trigger in hte JSF page. Basically I am looking at loading the JSF page dynamically after having set the database schema on the application module that was instantiated using the URL parameters
    2) After step 1, since the database schema is now set on the context I will be able to use the database schema to load data from the database objects.
    3) Each schema has a database trigger which runs when the database connection is initiated. This is used to set the multi-org context.
    Please could someone help me out with step 1 above on how to read URL parameters without any user triggers on the JSF page and setting the database schema on the application module being used by the application. Please remember that I am not using JDBC data sources but JDBC URL's to create m application.
    Any code samples to load the current application module instance and setting the database connection on the same from bc4j.xcfg would be very very helpful.
    Thanks a lot.
    Regards,
    Lester.

    Hi safir,
    thanks for your answer.
    With JSF also "normal" Links should be handled like Form-submit links
    ("Command buttons")
    (see in JSF manual "Using java server faces tech.", page 82 Handling Events: Application Events: #
    <i>Because app. events apply to the entire application, this kind of event is currently used for
    navigation between pages of the app.</i>)
    So it is a general Problem, you cannot copy the links from the browser.
    I understand, that is is not a bug,
    but is there maybe a solution for my problem?
    I want to use JSF, because of the good form validation
    operations.

  • Semmingly intractable JDBC connect problem

    Greetings,
    I am having massive difficulties getting our application to talk to our oracle database. We've (probably unwisely) upgraded the OS to RH9, the database to Oracle 9i and the JDK to 1.3.1 (from RH7, 8i and 1.2).
    The problem is that when I try to connect via JDBC in a jsp, it hangs for a long time and comes back with "ServletException: Io exception: the Network Adaptor could not make the connection." This seems to be a common problem, but I have worked extensively on this, and have tried all the posted remedies I can find: connect URL is verifiably correct, database/listener running, path, networking, different connect methods, etc.
    At a low level, what happens is that the listener establishes the connection, but never recieves a reply back, and I can't determine whether oracle is failing (no trace/log seems to support it) or if JDBC is failing. Since all I get is "Connection failed" in a single method call, I'm not sure how to diagnose that.
    Has anybody seen this before? It's killing me
    Thanks,
    --M                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    Can you run a simple app that connects to Oracle successfully, no Tomcat or JSPs involved? I'd try that, if you haven't already.
    Here's a simple Java app that will let you try it:
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    public class ConnectionTest
        public static void main(String [] args)
            try
                if (args.length > 0)
                    Connection connection = ConnectionTest.getConnection(args[0]);
                    DatabaseMetaData meta = connection.getMetaData();
                    System.out.println("Database product: " + meta.getDatabaseProductName());
                    System.out.println("JDBC driver     : " + meta.getDriverName());
                    connection.close();
                else
                    System.out.println("No properties file given");
            catch (SQLException e)
                System.err.println("SQL state: " + e.getSQLState());
                System.err.println("SQL error: " + e.getErrorCode());
                e.printStackTrace(System.err);
            catch (Exception e)
                e.printStackTrace(System.err);
        public static Connection getConnection(final String propertiesName)
            throws ClassNotFoundException, SQLException,IOException
            Properties props=new Properties();
            FileInputStream in=new FileInputStream(propertiesName);
            props.load(in);
            in.close();
            String drivers=props.getProperty("jdbc.driver");
            Class.forName(drivers);
            String url=props.getProperty("jdbc.url");
            String username=props.getProperty("jdbc.username");
            String password=props.getProperty("jdbc.password");
            System.out.println("driver  : " + drivers);
            System.out.println("url     : " + url);
            System.out.println("username: " + username);
            System.out.println("password: " + password);
            return DriverManager.getConnection(url, username, password);
    }Save these properties (changed to your values) to ConnectionTest.properties:
    jdbc.driver     = oracle.jdbc.driver.OracleDriver
    jdbc.url        = jdbc:oracle:thin:@host:1521:SID
    jdbc.username   = username
    jdbc.password   = passwordCompile like this:
    javac ConnectionTest.javaRun like this (assuming ConnectionTest.properties and classes12.jar are in the same directory as ConnectionTest.class):
    java -classpath .:classes.12.jar ConnectionTest ConnectionTest.propertiesIt'll come back and tell you the database vendor name if the connection succeeds. - MOD
    MOD

  • MSSQLServer jdbc connect problem on ODI 11G R2

    I have a MS SQL Server jdbc connect problem on ODI 11G R2 / Windows server 2008 64 bits.
    Tried, one by one, all versions of Microsoft drivers.
    Sqljdbc4.jar copied to : %appdata%\odi\oracledi\userlib\
    The Topology connect syntax is :
    driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
    URL : jdbc:sqlserver://<host>:1433
    => All the topology tests end with time-outs.
    Installed 10G ODI.
    Works with 1.4 java and sqljdbc.jar version 2 jdbc driver.
    Times out with version 3 and/or Sqljdbc4.jar + JAVA_HOME & ODI_JAVA_HOME set to 1.6 path.
    also tried, with no success (time-outs) on either 10g or 11g :
    com.inet.tds.TdsDriver
    jdbc:inetdae7://<host>:1433?database=<DB>
    same results for :
    net.sourceforge.jtds.jdbc.Driver
    jdbc:jtds:sqlserver://<host>:1433
    Any suggestions for a fix?
    Many thanks in advance.

    Hello,
    ODI (11g) Studio is certified on Windows 32 bit only, not on 64bit.
    However you may still install it and configure ODI Studio to run with a 32 bit java.
    Details pls see Master Note For ODI 11g Install Issues And Questions (Doc ID 1214428.1).
    To connect to SQL Server:
    # Check and make sure the authentication mode of your Microsoft SQL Server Server is set to "SQL Server and Windows" or "Mixed", otherwise Oracle Data Integrator (ODI) is unable to connect to the database.
    # Before you create the Oracle Data Integrator (ODI) Dataserver in Topology Manager > Physical Architecture, stop all ODI processes, and place the JDBC Driver file in the ODI's userlib and "/drivers" folder.
    For ODI Studio (Local No Agent)
    %APPDATA%\odi\oracledi\userlib
    %APPDATA% is the Windows Application Data directory for the user (usually C:\Documents and Settings\<user>\Application Data).
    Standalone Agent
    ODI_HOME\oracledi\agent\drivers
    Note: If you decide to use the DataDirect driver that comes with ODI 11g install/ embedded in ODI 11g
    weblogic.jdbc.sqlserver.SQLServerDriver
    Then you don't need to worry about this step.
    # Make sure that the database is the default database of the user account employed by ODI for connection, and that the password is correct.
    # Verify (in your Microsoft SQL Server Server network configuration) that TCP/IP has been enabled on port 1433.
    For more details see How To Set Up JDBC Driver Connections For The Microsoft SQL Server For ODI (Doc ID 423914.1)
    If you try sqljdbc.jar, you need to configure ODI_JAVA_HOME to jdk1.5
    sqljdbc4.jar, jdk1.6 (since ODI 11g requires jdk1.6, I'd suggest sqljdbc4.jar)
    More see Compatibility Matrix For Java Machines And JDBC Drivers Used With ODI (Doc ID 807235.1)
    Hope that helps other people who run into this,
    Edited by: user742480 on Apr 4, 2011 12:06 PM

  • Deployment using JDBC DataSource instead of JDBC URL

    Hello,
    I've noticed some strange behaviour when deploying an ADF application (11g, latest release) to a WLS (integrated or stand-alone), when using JDBC DataSource as a connection type for the application module.
    Normally, when you create your Business Components, a Database Connection is added to the Application Resources panel, eg MyConnection. If you then set your AM to JDBC DataSource instead of JDBC URL, the default datasource would be jdbc/MyConnectionDS. To make the application use the DataSource defined on the WLS, I then uncheck "Auto Generate and Synchronize weblogic-jdbc.xml Descriptors during deployment" in the Application Properties > Deployment tab.
    So far so good: after deployment to the WLS, the application uses the DataSource defined on the WLS server (jdbc/MyConnectionDS). When changing it on the server to another database, the application indeed uses this other database. Also, the following is automatically added to the web.xml during deployment to .ear file:
      <resource-ref>
        <res-ref-name>jdbc/MyConnectionDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
      </resource-ref>Now the part that doens't make sense to me: if I delete the password in the Database Connection under Application Resources, I can still deploy the application, but the jdbc/MyConnectionDS on the WLS is not found anymore. While it is still there. I get the following error message:
    Unable to lookup Data Source at context java:comp/env/jdbc/MyConnectionDS
    oracle.jbo.DMLException: JBO-27200: JNDI failure. Unable to lookup Data Source at context java:comp/env/jdbc/MyConnectionDS
    I made the JDev connection (used at development) invalid, and the deployed application stops working (at runtime). While it should just be using the JDBC DataSource defined on the WLS, that is still there. The reason appears to be that when there is no password in the Database Connection in JDev, the entry in the web.xml (see above) is not made during deployment.
    I am doing something wrong? Or is this "expected" behaviour?
    The reason why it bothers me: I have made a reusable component (a Data Control, let's call it A) from a model project, by deploying it to a ADF library JAR. I've set the AM of this project to use a certain jdbc datasource, which will be defined on the WLS.
    When importing the library JAR of A inside another application (B), the connection of the A is added to B. But ofcourse, without the password for security reasons, so we're in the situation described above: When I deploy the new application B, the web.xml is not updated with the DataSource of A, and the application doens't work. And what I would like to avoid, is that whenever someone uses component A, that they have to update the connection details of component A in application B. Because when I fill in the password of application A's Database Connection in application B, all works well again.
    I hope this question makes sense. :-)
    Thanks in advance,
    Chris

    Arun and Krithika,
    Thanks for your replies. I have already done what both of you suggested:
    Chris Schryvers wrote:
    I then uncheck "Auto Generate and Synchronize weblogic-jdbc.xml Descriptors during deployment" in the Application Properties > Deployment tab.I can get it to work, both for deployment on the internal WLS as on a stand-alone WLS.
    My only question is: why does a property at development time (the empty password of the JDev connection) influence the runtime behaviour (the JDBC DataSource not being found after deployment).
    Ofcourse, setting the password for the connection in JDev "solves" the problem. But I want to avoid that everyone who uses the reusable component needs to fill in the password for its database connection. In my opinion, that's the whole point of using a JDBC datasource instead of a JDBC URL: the reusable component just states that there needs to be a jdbc/MyConnectionDS on the server and it can be used as is. Wihtout any modifications at development time.
    What's more:
    Suppose I import the reusable JAR and its connection is added to JDev, without password.
    *) Leaving the password empty: DS not found after deployment (web.xml not adjusted, as mentioned in my original post)
    *) Entering the correct password: DS found, web.xml adjusted at deploy time.
    *) Entering an incorrect password: DS found, web.xml adjusted at deploy time.
    It even works when I enter an incorrect password, which proves that the JDBC DataSource on the server is used, instead of the JDev connection. Then why is the web.xml not adjusted when the password remains empty?
    Arun, I'll check the documention that you linked to, but this just seems like an weird decision in the implementation of JDev/ADF. :-)

  • Proxy Authentication with JDBC Datasource instead of JDBC URL?

    Hello,
    A requirement for my current project (ADF 10g) is that a user should be able to log in with his regular database account. For the moment, this is implemented using Proxy Authentication, as described in the following article:
    http://blogs.oracle.com/jheadstart/2008/01/using_proxy_authentication.html
    For now, we are using a JDBC URL defined in the application module config for the BC. In short: a ProxyAuthConnectionPoolManager class was created that overrides the default ConnectionPoolManagerImpl. The getConnection method has been overridden to create a standard connection (with the username/pw defined on the AM), and additionally, create a proxy connection within this connection with the specific user credentials. The (simplified) code:
        public Connection getConnection(String key, String url, Properties props, String username, String pwd) {
            // first fetch a default connection from the pool through the superclass
            Connection connection = super.getConnection(key, url, props, username, pwd);
            // cast into an OracleConnection
            OracleConnection oraConnection = (OracleConnection) connection;
                // close any proxy sessions that would still exist on the connection
                if (oraConnection.isProxySession()) oraConnection.close(OracleConnection.PROXY_SESSION);
                // get a handle on the session scope
                Map sessionScope = ADFContext.getCurrent().getSessionScope();
                if (sessionScope != null) {
                    // find the user object in the session (the account the user logs in with)
                    ProxyAuthUser user = (ProxyAuthUser) sessionScope.get(ProxyAuthUser.JHS_USER_KEY);
                    if (user != null) {
                        // create a property map with the end user credentials
                        Properties proxyProps = new Properties();
                        proxyProps.put(OracleConnection.PROXY_USER_NAME, user.getDbUsername() + "/" + user.getDbPassword());
                        proxyProps.put(OracleConnection.PROXY_USER_PASSWORD, user.getDbPassword());
                        // open the proxy session
                        oraConnection.openProxySession(OracleConnection.PROXYTYPE_USER_NAME, proxyProps);
                return oraConnection; 
        }Now, this works perfectly when using a JDBC URL. But when I switch the JDBC Datasource the ProxyAuthConnectionPoolManager class is not called anymore. This is all done in code in the Application Server. While using a JDBC Datasource is actually necessary: otherwise for each environment (dev, test, production,...) a different WAR file is needed.
    What class can I override with code similar to the piece above, to open a proxy connection inside the existing connection, when using a JDBC Datasource?
    Your help would be greatly appreciated!
    Chris

    Hello Krasimir,
    Frank Nimphius gave me the solution to this problem. The prepareSession is indeed the best place to put the code:
       private OracleConnection oconn = null;
       public void prepareSession(SessionData SessionData) {
          super.prepareSession(SessionData);
          oconn = ((PrxyTransactionImpl)this.getDBTransaction()).getPrxyConnection();
          // Specify the user that connects through the proxy user and its roles
          Properties prop = new Properties();
          prop.put(OracleConnection.PROXY_USER_NAME,"hr");
          prop.put(OracleConnection.PROXY_USER_PASSWORD,"hr");
          //prop.put(OracleConnection.PROXY_ROLES, roles);
          // Open the proxy session (DB-authenticated users)
          try {
             oconn.openProxySession(OracleConnection.PROXYTYPE_USER_NAME, prop);
          catch (SQLException e) {
             // Close the connection, to avoid connection to remain open after exception
             oconn.abort();
             e.printStackTrace();
       }But Frank also created the following helper classes to extend the ADF BC behavior:
       package oracle.sample.dbprxy.adfbc;
       import oracle.jbo.server.DBTransactionImpl2;
       import oracle.jbo.server.DatabaseTransactionFactory;
        * TransactionFactory that returns PrxTransactionImpl, which is a subclass of
        * DBTransactionImpl2
        * @author Frank Nimphius
       public class PrxyDatabaseTransactionFactory extends DatabaseTransactionFactory {
          public PrxyDatabaseTransactionFactory() {
             super();
           * Override the create method to return an instance of PrxyTransactionImpl instead
           * of DBTransactionImpl2
           * @return PrxyTransactionImpl
          public DBTransactionImpl2 create() {
             return new PrxyTransactionImpl();
       package oracle.sample.dbprxy.adfbc;
       import oracle.jbo.server.DBTransactionImpl2;
       import oracle.jdbc.internal.OracleConnection;
       public class PrxyTransactionImpl extends DBTransactionImpl2 {
          public PrxyTransactionImpl() {
             super();
           * The DBTransactionImpl2 does not expose the connection in a public
           * method. This class is a wrapper to expose the connection to the
           * BC app, so it can be accessed in the ApplicationModuleImpl class
           * @return OracleConnection - SQL Connection
          public OracleConnection getPrxyConnection() {
             return (OracleConnection) this.getJdbcConnection();
       }In the configuration of your Application Module, you have to set the property "TransactionFactory" (normally the last one in the list) to oracle.sample.dbprxy.adfbc.PrxyDatabaseTransactionFactory. This way, the DBTransaction() of your AM will have a getPrxyConnection() method and you will have the connection at your disposal. You won't need the createPreparedStatement in your code anymore.
    To close the connection, this is the code behind my "logout button" on the backing bean. Application Module Pooling and Connection Pooling will take care of the rest for you!
       ExternalContext ectx = FacesContext.getCurrentInstance().getExternalContext();
       HttpSession session = (HttpSession)ectx.getSession(false);
       session.invalidate();Another thing: be sure to set the internalconnection property to a different JDBC Datasource (or file based) than the one you are using to connect to the database (the default value). Otherwise connection pooling will be confused and there will be too much pending database connections.
    This works for me, all sessions are closed in time and logging out seems secure. I do not have my complete, adjusted code here at my disposal, but next week, when I'm back at work, I'll have a look to see if there is anything I forgot to mention. So this should get you started, but I'll keep you posted!
    A huge thank you to Frank again for helping me (/us) out with this problem!! And sorry I forgot to post the answer here sooner. I was too busy with testing it. :-)
    Regards,
    Chris

  • Jdbc:odbc problem with SqlDeveloper

    Hi Forum!
    My organization is evaluating moving to SQL Developer, the only obstacle for this is that we are running Oracle RDB on a VAX machine, RBD requires a special client driver that is able to work with ODBC, which is what we usually do, I am trying to setup a connection using an ODBC DSN with jdbc:odbc:DSNName, I tested this same JDBC URL with a small java class and it runs just fine, so the problem is that in SQL Developer I get an "Failure: -invalid connection information specified. Verify the URL format for the specified driver".
    * Has anyone been successful in configuring an ODBC connection on SQL Developer?
    * Any suggestion as to how to connect to Oracle RDB using SQL Developer on Windows XP?
    Thanks a lot!
    Ignacio

    Hi,
    My experience is the following:
    - Install Oracle SQL services 7.2 on Alpha machine.
    - Configure an OCI (SQLNET) service in SQL services layer.
    - Prepare my Rdb database 7.2 to run SQLNET (RDB_NATCONN scripts) and depending on version add users.
    - configure the SQLNET layer (TNSNAME) on client side (warning the default VLS listener port is 1527 on VMS instead 1521).
    - start SQL Developper and connect Rdb database via TNSNAME.

  • HT3281 Podcasts from Current Tv, since three weeks prior to the Nov 2012 election have had a url problem and cannot be played on my mac mini 2011 with 10.8.2 and the latest Itunes? anyone know why ? I am in contact with Itunes now and they wanted screensh

    Podcasts from Current Tv, since three weeks prior to the Nov 2012 election have had a url problem and cannot be played on my mac mini 2011 with 10.8.2 and the latest Itunes? anyone know why> ? I am in contact with Itunes now and they wanted screenshots of the problem, I can get these current tv episodes with a vpn and my isp says they are not blocking them, but i was surprised that prior to the election they were blocked, ?
    I also can get them on my Android Samsung Galaxy note 2 with no problem but on the Macmini cannot>/? I Unsubscribed and subscribed many times but still no luck, any ideas? I am waiting for the senior advisor to get back to me on this issue. I am in THailand now where the problem is happening and as I said the ISP says they do not block any podcasts.I also do not want it on my iphone 5, so I have to wait and see why the mac mini is not getting it.

    I seem to have fixed it by putting <div  class="clearfloat"></div> after the navigation bar?

  • Creating a service ; What needs to be added to tnsnames.ora and JDBC url?

    DB version: 11.2.0.2
    OS platform : Solaris 10
    We have a 2 node RAC.
    DB name   = mbsprd
    Instance1  = mbsprd1
    Instance2  = mbsprd2I want Instance 1 (mbsprd1) to be used for our OLTP application and Instance 2 (mbsprd2) to be used for another application of DSS nature.
    Based on the syntax
    srvctl add service -d <dbname> -s <ServiceName> -r <Preferred Instance> -a <Available Instance>I am going to create 2 services
    -- Creating a service called OLTP
    srvctl add service -d mbsprd -s OLTP  -r mbsprd1 -a mbsprd2-- Creating a service called DSS
    srvctl add service -d mbsprd -s DSS  -r mbsprd2 -a mbsprd1-- Starting the services
    srvctl start service -d mbsprd -s OLTP
    srvctl start service -d mbsprd -s DSSI guess the above steps are enough to configure a service at the server side.
    I would like to know what needs to be done at the client side.
    Currently the tnsnames.ora file and JDBC url used by our clients are shown below. What needs to be added to tnsnames.ora file and jdbc URL to start using services configured above?
    -- SCAN based TNS entry
    mbsprd =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (COMMUNITY = tcp.world)
            (PROTOCOL = TCP)(Host = p148149-scan.tpam.net) (Port = 36964))
        (CONNECT_DATA =
          (SERVER       = DEDICATED)
          (SERVICE_NAME = mbsprd)
          (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC))
    -- TNS entry based on local listener
    -- Instance 1
    mbsprd1 =
    (DESCRIPTION =
       (ADDRESS_LIST =
       (ADDRESS =(PROTOCOL = TCP)(HOST = hsolarp148-vip)(PORT = 36973))
       (CONNECT_DATA =
             (SERVICE_NAME = mbsprd)
             (INSTANCE_NAME = mbsprd1)
    -- Instance 2
    -- TNS entry based on local listener
    mbsprd2 =
    (DESCRIPTION =
       (ADDRESS_LIST =
       (ADDRESS =(PROTOCOL = TCP)(HOST = hsolarp149-vip)(PORT = 36973))
       (CONNECT_DATA =
             (SERVICE_NAME = mbsprd)
             (INSTANCE_NAME = mbsprd2)
    )JDBC entry for RAC
    jdbc:oracle:thin:@p148149-scan.tpam.net:36964:mbsprd -- Alternative version used by some clients because the above had 'some issues'
    jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)(ADDRESS=(PROTOCOL=TCP)(HOST=p148149-scan.tpam.net) (PORT=36964))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=mbsprd)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 10))))

    OLTP =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = p148149-scan.tpam.net)(PORT = your_port_number))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = OLTP)
    DSS =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = p148149-scan.tpam.net)(PORT = your_port_number))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = DSS)
      )JDBC entry for RAC
    jdbc:oracle:thin:@p148149-scan.tpam.net:36964:service_name
    jdbc:oracle:thin:@new_tns_entry_description(if you would like to connect the database with particular service)
    try this and let us know any issues,

Maybe you are looking for

  • ITunes Error Message 'Unknown Error (-69)'

    Recently I have been getting this error message (-69) every time I try to sync my podcasts on to my ipod nano (3g). I get to a certain podcast every time and then it just stops syncing and I get the error message. This has only been happening since I

  • DOES BURNING YOUR DVD OR CD WILL BE HARMED?

    Like when i finished burning the dvd, then i put it in my dvd player, can it still be played, not like becomed damaged?

  • Ichat multiple login problems

    whenever i start my ichat, it logs in 4 or five times and then a window pops up saying something about how i logged in to many times in one period of time and to try again later. this happens every time i start it. can anybody help me?

  • Error when execute an external-facing portal

    Hello world, I would like to make  an external-facing portal for anonymous users who want to access to my iviews created by Visual Composer (I don't know if it's possible)). I have read some documentation about it. I began create a Light Portal Deskt

  • What about this website of movies online

    I want you all to have a look on this website and let me know if i can make some changes in it. Or share your reviews about the website. What according to you will rate it out of 10. Here is the link to the website. watch movies online Thanks in adva