How to use a custom KeyManager for Oracles JCBD thin driver

I am trying to create a java application that uses PKI for authentication. I need to be able to retrieve a certificate from the Microsoft Certificate Store MCS) and pass it along to an Oracle database (11.2). I am connecting using the jdbc:oracle:thin driver. After spending some time googlling it appears that I have to create a custom KeyManager and a custom TrustManager to accomplish this. I am not sure if this is even the correct way to approach the problem, but assuming it is; how do I force the jdbc:oracle:thin driver to use my KeyManager and TrustManager? Also, as stated above the client certificates will be stored in the MCS while the Oracle database will be using a wallet. The database could be running on just about any OS that supports Oracles database which is why I will not be setting up Oracle to use MCS.
Thanks for the help!

I am trying to create a java application that uses PKI for authentication. I need to be able to retrieve a certificate from the Microsoft Certificate Store MCS) and pass it along to an Oracle database (11.2). I am connecting using the jdbc:oracle:thin driver. After spending some time googlling it appears that I have to create a custom KeyManager and a custom TrustManager to accomplish this. I am not sure if this is even the correct way to approach the problem, but assuming it is; how do I force the jdbc:oracle:thin driver to use my KeyManager and TrustManager? Also, as stated above the client certificates will be stored in the MCS while the Oracle database will be using a wallet. The database could be running on just about any OS that supports Oracles database which is why I will not be setting up Oracle to use MCS.
Thanks for the help!

Similar Messages

  • How to use a custom KeyManager in nonblocking SSLSocketChannel

    In our existing project I had to replace the nonblocking SocketChannel by nonblocking SSLSocketChannel. My implementation of the nonblocking SSLSocketChannel hides all the SSL stuff and can be used like a SocketChannel in the whole project you just have to use the SSLSocketChannelProvider instead of SocketChannelProvider in one place.
    Now I have a new requirement . Different server-certificate should be used for different IP-Addresses on the same SSLServerSocket. The relationship between IPs and certificates is well-know. The first idea was to use a custom KeyManagerDelegate which extends X509ExtendedKeyManager to choose the server certificate. The KeyManagerDelegate should delegate the calls to a KeyManager obtained by
    KeyManagerFactory.getInstance("NewSunX509").getKeyManagers();This works if I use a blocking SSLServerSocket obtained by SSLContext.getServerSocketFactory().createServerSocket();
    But the KeyManagerDelegate is never called by the SSLContext if I use my own nonblocking SSLServerSocketChannel. Instead of calling my KeyManagerDelegate the SSLEngineImpl throws an Exception
    javax.net.ssl.SSLHandshakeException: no cipher suites in common
         at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Handshaker.java:951)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:466)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(SSLEngineImpl.java:1092)
         at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(SSLEngineImpl.java:1064)
         at javax.net.ssl.SSLEngine.wrap(SSLEngine.java:452) The next thing I’m going to try would be to get the SSLContext to use my own SSLSocketChannelProvider as ServerSocketFactory.
    Or I use different SSLContext for each incoming connection, which would break my clean design as the server had to mess around with building new SSLContext. Another possibility is to implement a callback in the ServerSocketChannel to get a new SSLContext for each accepted connection. This would safe my design but looks like an ugly workaround to me and I'm not sure yet if it works.
    Any better ideas?
    Thanks Domi

    Thank you for your response.
    At the moment I try this in my unit-test (this is the working blocking code)
    final KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
    final KeyStore ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), password);
    kmf.init(ks, password);
    final KeyManager[] km = kmf.getKeyManagers();
    final SecureRandom random = new SecureRandom();
    context.init(new KeyManager[]                                                                   //TrustManager not shown here
             {new KeyManagerDelegate((X509KeyManager) km[0])}, tmf.getTrustManagers(), random);
    final ServerSocket serverSocket = context.getServerSocketFactory().createServerSocket();
    serverSocket.accept();The KeyManagerDelegate just delegates all calls to the underlying KeyManager (shown at the end)
    or (not working)
    final KeyManagerFactory kmf = KeyManagerFactory.getInstance("NewSunX509");
    final KeyStore ks = KeyStore.getInstance("JKS");
    ks.load(new FileInputStream(System.getProperty("javax.net.ssl.keyStore")), password);
    kmf.init(ks, password);
    final KeyManager[] km = kmf.getKeyManagers();
    final SecureRandom random = new SecureRandom();
    context.init(new KeyManager[]                                                      //TrustManager not shown here
             {new KeyManagerDelegate((X509KeyManager) km[0])}, tmf.getTrustManagers(), random);
    provider = SSLSelectorProvider.provider(context);                             //My SSLProvider
    final ServerSocketChannel ssc = provider.openServerSocketChannel();  // My SSLServerSocketChannel
    final SSLSelector sel = provider.openSelector();
    ssc.register(sel, SelectionKey.OP_ACCEPT, new AcceptHandler());the SSLEngine is created by the SSLSocketChannel resulting from the accept in the SSLServerSocketChannel. It uses the same SSLContext as the provider, but here the KeyManagerDelegate is never called.
    Or what do you mean by associated, did I miss your point?
       private static class KeyManagerDelegate
          extends X509ExtendedKeyManager
          private final X509KeyManager _manager;
          KeyManagerDelegate (final X509KeyManager manager)
             _manager = manager;
          @Override
          public String chooseClientAlias (final String[] arg0, final Principal[] arg1, final Socket arg2)
             return _manager.chooseClientAlias(arg0, arg1, arg2);
          @Override
          public String chooseServerAlias (final String arg0, final Principal[] arg1, final Socket arg2)
             return _manager.chooseServerAlias(arg0, arg1, arg2);
          @Override
          public X509Certificate[] getCertificateChain (final String arg0)
             return _manager.getCertificateChain(arg0);
          @Override
          public String[] getClientAliases (final String arg0, final Principal[] arg1)
             return _manager.getClientAliases(arg0, arg1);
          @Override
          public PrivateKey getPrivateKey (final String arg0)
             return _manager.getPrivateKey(arg0);
          @Override
          public String[] getServerAliases (final String arg0, final Principal[] arg1)
             return _manager.getServerAliases(arg0, arg1);
       }

  • Weblogic jDriver for oracle/xa thin driver configuration

              Hi,
              I try to configure an XA thin connection pool to oracle.
              Using the configuration from page 16-11 of adminguide.pdf,
              the start is with the error "No suitable driver".
              The driver is configured like that:
              DriverClassname=oracle.jdbc.xa.client.OracleXADataSource
              Also, with the classes12.zip for oracle 8.1.7 for jdk1.2 taken from oracle site,
              before weblogic.jar in classpath, same error:(.
              The error:
              <Jan 14, 2001 2:22:01 PM EET> <Error> <JDBC> <Cannot startup connection pool "OracleJDBCTxConnectionPool"
              weblogic.common.ResourceException: java.sql.SQLException: No suitable driver
                   at java.sql.DriverManager.getConnection(DriverManager.java:537)
                   at java.sql.DriverManager.getConnection(DriverManager.java:177)
                   at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:111)
                   at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:88)
                   at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:68)
                   at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:194)
                   at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:54)
                   at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
                   at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.java:306)
                   at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:679)
                   at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:109)
                   at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
                   at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
                   at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:233)
                   at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
                   at java.lang.reflect.Method.invoke(Native Method)
                   at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
                   at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
                   at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
                   at $Proxy41.updateDeployments(Unknown Source)
                   at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2571)
                   at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:333)
                   at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:149)
                   at java.lang.reflect.Method.invoke(Native Method)
                   at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
                   at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
                   at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
                   at $Proxy34.start(Unknown Source)
                   at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:479)
                   at weblogic.management.Admin.startApplicationManager(Admin.java:1098)
                   at weblogic.management.Admin.finish(Admin.java:520)
                   at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:473)
                   at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
                   at weblogic.Server.main(Server.java:35)
                   at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:203)
                   at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:54)
                   at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
                   at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.java:306)
                   at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:679)
                   at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:109)
                   at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
                   at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
                   at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:233)
                   at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
                   at java.lang.reflect.Method.invoke(Native Method)
                   at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
                   at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
                   at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
                   at $Proxy41.updateDeployments(Unknown Source)
                   at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2571)
                   at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:333)
                   at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:149)
                   at java.lang.reflect.Method.invoke(Native Method)
                   at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
                   at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
                   at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
                   at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
                   at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
                   at $Proxy34.start(Unknown Source)
                   at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:479)
                   at weblogic.management.Admin.startApplicationManager(Admin.java:1098)
                   at weblogic.management.Admin.finish(Admin.java:520)
                   at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:473)
                   at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
                   at weblogic.Server.main(Server.java:35)
              >
              Thank you in advance.
              kind regards, adrian
              

              Hi,
              it works :) !
              Thank you,
              Adrian
              "John Harby" <[email protected]> wrote:
              >
              >Mine seems to work ok but I have classes12.zip after weblogic.jar.
              >
              >set CLASSPATH=.;.\lib\weblogic_sp.jar;.\lib\weblogic.jar;.C:\oracle\ora81\jdbc\l
              >ib\classes12.zip;.\config\examples\serverclasses
              >
              >
              >"adrian balaban" <[email protected]> wrote:
              >>
              >>Hi,
              >>
              >>I try to configure an XA thin connection pool to oracle.
              >>
              >>Using the configuration from page 16-11 of adminguide.pdf,
              >>the start is with the error "No suitable driver".
              >>
              >>The driver is configured like that:
              >>DriverClassname=oracle.jdbc.xa.client.OracleXADataSource
              >>
              >>Also, with the classes12.zip for oracle 8.1.7 for jdk1.2 taken from
              >oracle
              >>site,
              >>before weblogic.jar in classpath, same error:(.
              >>
              >>The error:
              >>
              >><Jan 14, 2001 2:22:01 PM EET> <Error> <JDBC> <Cannot startup connection
              >>pool "OracleJDBCTxConnectionPool"
              >>weblogic.common.ResourceException: java.sql.SQLException: No suitable
              >>driver
              >>     at java.sql.DriverManager.getConnection(DriverManager.java:537)
              >>     at java.sql.DriverManager.getConnection(DriverManager.java:177)
              >>     at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:111)
              >>     at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:88)
              >>     at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:68)
              >>     at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:194)
              >>     at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:54)
              >>     at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
              >>     at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.java:306)
              >>     at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:679)
              >>     at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:109)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:233)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
              >>     at java.lang.reflect.Method.invoke(Native Method)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
              >>     at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
              >>     at $Proxy41.updateDeployments(Unknown Source)
              >>     at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2571)
              >>     at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:333)
              >>     at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:149)
              >>     at java.lang.reflect.Method.invoke(Native Method)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
              >>     at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
              >>     at $Proxy34.start(Unknown Source)
              >>     at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:479)
              >>     at weblogic.management.Admin.startApplicationManager(Admin.java:1098)
              >>     at weblogic.management.Admin.finish(Admin.java:520)
              >>     at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:473)
              >>     at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
              >>     at weblogic.Server.main(Server.java:35)
              >>
              >>     at weblogic.jdbc.common.internal.XAConnectionEnvFactory.makeConnection(XAConnectionEnvFactory.java:203)
              >>     at weblogic.jdbc.common.internal.XAConnectionEnvFactory.createResource(XAConnectionEnvFactory.java:54)
              >>     at weblogic.common.internal.ResourceAllocator.makeResources(ResourceAllocator.java:707)
              >>     at weblogic.common.internal.ResourceAllocator.<init>(ResourceAllocator.java:306)
              >>     at weblogic.jdbc.common.internal.ConnectionPool.startup(ConnectionPool.java:679)
              >>     at weblogic.jdbc.common.JDBCService.addDeployment(JDBCService.java:109)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:329)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.addDeployments(DeploymentTarget.java:279)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.updateServerDeployments(DeploymentTarget.java:233)
              >>     at weblogic.management.mbeans.custom.DeploymentTarget.updateDeployments(DeploymentTarget.java:193)
              >>     at java.lang.reflect.Method.invoke(Native Method)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
              >>     at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
              >>     at $Proxy41.updateDeployments(Unknown Source)
              >>     at weblogic.management.configuration.ServerMBean_CachingStub.updateDeployments(ServerMBean_CachingStub.java:2571)
              >>     at weblogic.management.mbeans.custom.ApplicationManager.startConfigManager(ApplicationManager.java:333)
              >>     at weblogic.management.mbeans.custom.ApplicationManager.start(ApplicationManager.java:149)
              >>     at java.lang.reflect.Method.invoke(Native Method)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:587)
              >>     at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:573)
              >>     at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:319)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1555)
              >>     at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1523)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:437)
              >>     at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:178)
              >>     at $Proxy34.start(Unknown Source)
              >>     at weblogic.management.configuration.ApplicationManagerMBean_CachingStub.start(ApplicationManagerMBean_CachingStub.java:479)
              >>     at weblogic.management.Admin.startApplicationManager(Admin.java:1098)
              >>     at weblogic.management.Admin.finish(Admin.java:520)
              >>     at weblogic.t3.srvr.T3Srvr.start(T3Srvr.java:473)
              >>     at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:198)
              >>     at weblogic.Server.main(Server.java:35)
              >>>
              >>
              >>Thank you in advance.
              >>
              >>kind regards, adrian
              >
              

  • How to use PDF417 Bar Code in Oracle Reports 6i

    How to Use PDF417 Bar Code in Oracle 6i. One of my clients has a requirement that Customer Name and Address to be converted into PDF417.
    Any help greatly appreciated.
    Thanks,
    PN

    You will need to add this font to the system and Reports configuration files.
    For adding font to the system, refer to your system specific guidelines for installing new fonts.
    After you have installed this font on the system, you should be able to see the font in Reports builder font picker dropdown box. or with unix 'xlsfonts' command
    For adding this font to the Reports application.
    1. Modify the printer definition file ( you can get this info from uiprint.txt file for the .ppd or .hpd file used )
    if the printer defination file is .ppd then look for "*Font Information" section and add the new font name there
    like *Font <new_font_name> Standard '(00.1001)" Standard ROM
    If hpd add the new font tfm file as
    FONT= new_font_name
    /tfm=new_font_tfm file.tfm
    2. Copy the AFM or TFM ( these are fonts metrics files, which font vendor will provide ) into the relevant directory so the the Reports application should pick them up.
    3. If necessary, make changes in the alias file (uifont.ali ) for mapping to this font. If the layout objects in your report are associated with the same font name as the new font then mapping is not required. But if the fonts for the layout objects are different then you need to map the original fonts to the new ones. Make sure that the mapping rules should be defined in the right section depending on the printer type being used.

  • How to use JavaMail 1.4 with Oracle Application Server 10g (9.0.4.0.0)

    Hi all,
    I'd like to know if it's possible and how to use JavaMail 1.4 with Oracle Application Server 10g (9.0.4.0.0), Windows version.
    With the following code, I can see that the mail.jar used by the server is the one included in the jdk installation :
    // I'm testing InternetAddress.class because I want to use commons-email-1.2.jar that requires mail.jar 1.4 (or higher) and activation.jar 1.1 (or higher)
    // and I know that inside the commons-email-1.2.jar file, I need to call the InternetAddress.validate() method that throws a java.lang.NoSuchMethodError: javax.mail.internet.InternetAddress.validate()V if it is used with mail.jar 1.2.
    Class cls = javax.mail.internet.InternetAddress.class;
    java.security.ProtectionDomain pDomain = cls.getProtectionDomain();
    java.security.CodeSource cSource = pDomain.getCodeSource();
    java.net.URL location = cSource.getLocation();
    System.out.println(location.toString());
    This code returns : file:/C:/oracle/app/jdk/jre/lib/ext/mail.jar and this mail.jar file has an implementation version number: 1.2
    - I've tried to include my own mail.jar (1.4.2) and activation.jar (1.1.1) files in the war file that I deploy, but it doesn't work (the server still uses the same mail.jar 1.2)
    - I've tried to put the mail.jar (1.4.2) and activation.jar (1.1.1) files in the applib directory of my OC4J instance, but it doesn't work (the server still uses the same mail.jar 1.2)
    - I know that a patch exists : I've read the following document: How to Make Libraries such as mail.jar and activation.jar Swappable ? [ID 552432.1]
    This article talks about the Patch 6514136, but this patch only applies to : Oracle Containers for J2EE - Version: 10.1.3.3.0
    Can you please help me ?
    Thanks in advance for your answers,
    Laurent

    I strongly suggest to upgrade to AS 10.1.3 to get this.
    Think of future support of AS 9.0.4. You will get not critical patch updates anymore.
    --olaf                                                                                                                                                                                                                                                                                                               

  • How to use the customer types in customer master data

    how to use the customer types in customer master data?
    menu path is Extras -> account group info -> customer types

    hi,
    This is an option given to you to choose (if you need to) the way you perceive this customer.Here you get options including ompetitors,Salespartner, prospect,
    default sp ,consumer.
    See it helps you to differentiate between prospect(which you may use for quotation or inquiry purpose)Sales partner and the competetor.
    I hope this clarifies your quiery.Reward points if so.
    Thanking you,
    Best regards,
    R.Srinivasan

  • How to create a custom measure for each level of a dimension

    Hi all!
    Can Anyone please explain me with an example, how to create a custom measure for each level for a dimension? I dont mine if you use
    one or more measures.
    thanks in advance
    hope someone helps me.

    For example:I create a dimension for product_dim witch has 4 levels:total, class, family and item:
    d_aben18
    n1_aben18
    n2_aben18
    n3_aben18
    n4_aben18
    herarchy:h_aben18
    cube:cubo_aben18
    measure:med_aben18
    I create this code to fetch the data to the dimension:
    TRAP ON CLEANUP
    SQL DECLARE c1 CURSOR FOR SELECT-
    total_product_id,1,'N1_ABEN18',total_product_dsc,-
    class_id,1,'N2_ABEN18',total_product_id,class_dsc,-
    family_id,1,'N3_ABEN18', class_id, family_dsc,-
    item_id,1,'N4_ABEN18',family_id,item_dsc-
    FROM PRODUCT_DIM
    "OPEN THE CURSOR
    SQL OPEN c1
    "FETCH THE DATA
    SQL FETCH c1 LOOP INTO-
    :APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N1_aben18_LEVELDEF,:D_ABEN18_long_description,-
    :APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N2_aben18_LEVELDEF,:D_ABEN18_parentrel,-
    :D_ABEN18_long_description,-
    :APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N3_aben18_LEVELDEF,:D_ABEN18_parentrel,-
    :D_ABEN18_long_description,-
    :APPEND D_ABEN18, :D_ABEN18_H_aben18_HIERDEF,:D_ABEN18_N4_aben18_LEVELDEF,:D_ABEN18_parentrel,-
    :D_ABEN18_long_description,-
    "SAVE THE CHANGES
    UPDATE
    COMMIT
    CLEANUP:
    SQL CLOSE c1
    SHOW 'KK2'
    Then I create a cube with use compression off, and in rules sum for example.
    After, I create a measure and I select Override the aggregation specification for the cube, in rules I put nonadditive and I would like to create aprogram to assign distinct values to each level of the dimension. For example, I put 1, 2 3, and 4 values, but at the end I would like to put count(distinct(values)).
    for that I create another program:
    VRB D_RETURN DECIMAL
    if D_ABEN18_N1_ABEN18_LEVELDEF eq 'N1_ABEN18'
    then D_RETURN = 1
    if D_ABEN18_N2_ABEN18_LEVELDEF eq 'N2_ABEN18'
    then D_RETURN = 2
    if D_ABEN18_N3_ABEN18_LEVELDEF eq 'N3_ABEN18'
    then D_RETURN = 3
    if D_ABEN18_N4_ABEN18_LEVELDEF eq 'N4_ABEN18'
    then D_RETURN = 4
    else d_return=26
    return d_return
    "SHOW D_RETURN
    cubo_aben18_med_aben18_stored=d_return
    but it doesnt work.I dont know how to put to assign or to see what I want.
    I report the measure, or I report the program, but then how can I see the values of the measure?
    thanks in advance

  • How to create a "Custom Color" for highlighting? (Acrobat XI)

    March 10, 2014
    How to create a "Custom Color" for highlighting? (Acrobat XI)
    The numbers in the RGB and other fields change as various numbers are changed.
    I wanted to create a pale orange:
    Hue               13      Red      255
    Saturation   240      Green  177
    Luminosity    86       Blue     140
    I'd selected one of the orange squares in the color grid, to display the general orange area of the slider.
    I moved the slider to select a pale orange, which generated the above numbers.   Since this wasn't directly available to save to a Custom Color, I tried to  edit the numbers.  Unfortunately, the other numbers changed, making it impossible to actually create a color.
    Any suggestions would be appreciated.
    Note:  I used Techsmith's Snagit to show screen shots in a Word document.
    When I attempted to browse and upload the file, the error message said "[The content type of this image is not allowed.]"
    OK...what images *are* allowed?

    Hi Don,
    I saw Gilad answered your question in another forum post.
    Do you have everything you need at this point?
    Let me know if you need further assistance.
    Kind regards, Stacy

  • How to use a Sybase table in Oracle SQL statement?

    How to use a Sybase table in Oracle SQL statement?
    Sybase version : 11.9.2.4
    Oracle version : 10.2.05
    Thanks.

    user12088323 wrote:
    How to use a Sybase table in Oracle SQL statement?
    Sybase version : 11.9.2.4
    Oracle version : 10.2.05
    Thanks.Any Oracle client connected to the Oracle database can access Sybase data through the <font style="background-color: #FFFFCC">Database Gateway for Sybase</font> (it requires an additional license) or the <font style="background-color: #FFFFCC">Database gateway for ODBC</font> (it's free).
    The Oracle client and the Oracle database can reside on different machines. The gateway accepts connections only from the Oracle database.
    A connection to the gateway is established through a database link when it is first used in an Oracle session. In this context, a connection refers to the connection between the Oracle database and the gateway. The connection remains established until the Oracle session ends. Another session or user can access the same database link and get a distinct connection to the gateway and Sybase database.
    Database links are active for the duration of a gateway session. If you want to close a database link during a session, you can do so with the ALTER SESSION statement.
    To access the Sybase server, you must create a <font style="background-color: #FFFFCC">database link</font>. A public database link is the most common of database links.
    SQL> CREATE PUBLIC DATABASE LINK dblink CONNECT TO
    2  "user" IDENTIFIED BY "password" USING 'tns_name_entry';
    --dblink is the complete database link name.
    --tns_name_entry specifies the Oracle Net connect descriptor specified in the tnsnames.ora file that identifies the gatewayAfter the database link is created you can verify the connection to the Sybase database, as follows:
    SQL> SELECT * FROM DUAL@dblink;
    Configuring Oracle Database Gateway for Sybase
    <font style="background-color: #FFFFCC">{message:id=10649126}</font>

  • Where to download and how to install X Window System for Oracle Linux 5 ?

    Folks,
    Hello. I am using Oracle Linux 5 and Oracle Database 11g for PIA.
    Before install Oracle DB 11g into Oracle Linux 5, we need to install X Window System according to the document page 2 http://download.oracle.com/docs/cd/B28359_01/install.111/b32285.pdf
    But I don't know where to download and how to install X Window System for Oracle Linux 5.
    Can any folk provide a link to download X Window System and tutorial to install it for Oracle Linux 5 ?

    You can address the problem in a number of different ways.
    You can install X-windows from the installation DVD or setup access to the Oracle public software repository as described in http://public-yum.oracle.com. In which case, the command to install X-windows is: yum groupinstall "X Window System"
    Or, you login remotely and and use SSH with X-forwarding, in which case the software on the server will use the X-Windows server on your client system. This is probably the preferred way since you do not have X-windows installed on the server. For more details about SSH forwarding and howto, please see Install Oracle 11gR2 on Ubuntu Linux 11.04 (64-bit) Howto part 2 Oracle Universal Installer.

  • How to use PPF customizing Auto GR after packing

    Our Goods Receive Business scenario is
    1. Filled Batch in EWM Inbound Delivery           
    2. Manual Pack product to Handling unit
    3. After packing, Automatic Good Receive
    4. Then create Warehouse Task automatically .
    Question
    We want to know how to use PPF customizing Auto GR after we Pack product to Handling unit?
    Can anyone help us to figure out that problem?
    Thank you
    Chang

    Hi Faical,
    I have set configuration as below, but it does'nt work.
    Can you help us to figure out the reason.
    We are appreciate your help!
    2. Manual Pack product to Handling unit
    3. After packing, Automatic Good Receive
    method: /SCWM/AU_GR_POST in processing details and for schedule condition:  /SCWM/WHR_FULL_PACKED. 
    time of processing : processing when save document
    3.After packing, Automatic Good Receive
    4. Then create Warehouse Task automatically
    method: /SCWM/AU_GR_POST in processing details and for schedule condition: /SCWM/TO_CREATE
    time of processing : immediate processing

  • How to use the custom control ?

    Hi Friends,
    plz help to use of  custom control in screen painter ?
    and how to use the custom control ?
    Thanking you.
    Regards,
    Subash.

    HI,
    Screen Elements
    A screen can contain a wide variety of elements, either for displaying field contents, or for allowing the user to interact with the program (for example, filling out input fields or choosing pushbutton functions). You use the Screen Painter to arrange elements on the screen.
    You can use the following elements:
    ·        Text fields
    Display elements, which cannot be changed either by the user or by the ABAP program.
    ·        Input/output fields and templates
    Used to display data from the ABAP program or for entering data on the screen. Linked to screen fields.
    ·        Dropdown list boxes
    Special input/output fields that allow users to choose one entry from a fixed list of possible entries.
    ·        Checkbox elements
    Special input/output fields that the user can either select (value ‘X’) or deselect (value SPACE). Checkbox elements can be linked with function codes.
    ·        Radio button elements
    Special input/output fields that are combined into groups. Within a radio button group, only a single button can be selected at any one time. When the user selects one button, all of the others are automatically deselected. Radio button elements can be linked with function codes.
    ·        Pushbuttons
    Elements on the screen that trigger the PAI event of the screen flow logic when chosen by the user. There is a function code attached to each pushbutton, which is passed to the ABAP program when it is chosen.
    ·        Frame
    Pure display elements that group together elements on the screen, such as radio button groups.
    ·        Subscreens
    Area on the screen in which you can place another screen.
    ·        Table controls
    Tabular input/output fields.
    ·        Tabstrip controls
    Areas on the screen in which you can switch between various pages.
    ·        Custom Controls
    Areas on the screen in which you can display controls. Controls are software components of the presentation server.
    ·        Status icons
    Display elements, indicating the status of the application program.
    ·        OK field
    Every screen has a twenty-character OK_CODE field (also known as the function code field) that is not displayed directly on the screen. User actions that trigger the PAI event also place the corresponding function code into this field, from where it is passed to the ABAP program. You can also use the command field in the standard toolbar to enter the OK field. To be able to use the OK field, you need to assign a name to it.
    All screen elements have a set of attributes, some of which are set automatically, others of which have to be specified in the Screen Painter. They determine things such as the layout of the screen elements on the screen. You can set the attributes of screen elements in the Screen Painter - either for a single element, or using the element list, which lists all of the elements belonging to the current screen. Some of the attributes that you set statically in the Screen Painter can be overwritten dynamically in the ABAP program.
    with regards,
    sowjanyagosala

  • Tools for Developing/Customizing Forms for Oracle Apps R12.1

    Hi All,
    Could you please help me identify the tools and correct version for developing and customizing Forms for Oracle E-Business Suite R12.1?
    Regards,
    KK

    Also, could you please elaborate your 2nd point regarding template.fmb The Oracle EBS uses a framework. Starting any new (custom) form for the EBS should ALWAYS begin with the template.fmb to ensure your new form has all of the required objects to comply with EBS Forms development standards. You might want to take a look at the Oracle Applications Documentation library. Select your EBS version and then scroll to the Standards section and review the following documents:
    <ul>
    <li>Oracle Applications Developer's Guide
    <li>Oracle Applications User Interface Standards for Forms-Based Products
    <li>Oracle Application Framework Personalization Guide
    </ul>
    Craig...

  • How to use one email adress for multiple recipients

    Hello,
    I'd like to know how to use one email adress for multiple recipients. 
    this would be very useful or projects. for example;
    if i send one mail to [email protected], all people in this project get an email.
    I will add the people in this project myself. 
    I know it is possible, but I don't know how to do it ;-)
    please help me! 

    Hope this help.
    _http://technet.microsoft.com/en-us/library/cc164331(v=exchg.65) .aspx

  • How to Use the same iview for both KM End User and the KM Administrator

    Hi friends,
    *This is my scenario :* How to Use the same iview for both KM End User and the KM Administrator but with different Context
    Menu Options.
    i followed these steps but im getting same context menu for both KM End User and the KM Administrator .
    Assign the role Content Administrator to the user km_admin. This is needed so that km_admin can change
    the presentation settings for the KM Folder u201EReports_kmFolder‟.
    Now, login with user km_admin. Navigate to the Km Folder reports_kmFolder through Content Administration
    -> Km Content. Click on Details link of the folder reports_kmFolder.
    Go To Settings -> Presentation. Click on the tab u201ESettings for You‟-> Click on button u201ESelect Profile‟.
    Select the radio button corresponding to u201Elayout Set‟, and choose u201EConsumerExplorer‟ from the dropdown.
    Click u201EOK‟.
    Select both the check boxes corresponding to Items Affected as shown above, and click u201ESave‟
    Now, remove the u201ESuper Administrator‟ role from the user km_admin and login with this user.
    How rto resolve this????
    Regards,
    Prasad.

    Hello Prasad,
    Most likely the user km_admin still has system principal roles assigned, even though you removed the Super Admin role, you should check that this user doesn't have any other admin roles, otherwise it will be considered a System Principal user and will therefore still have access to all content. For more information see http://help.sap.com/saphelp_nw70/helpdata/en/19/56f28fbd4e11d5993b00508b6b8b11/frameset.htm
    Try creating a new user with just read access to the content and you should see that it will not be able to make any changes etc.
    Regards,
    Lorcan.

Maybe you are looking for