Access as a datasource

Hi all,
I've been recently experiencing dramatic fluctuations in the
speed of the
sites I have hosted with a particular ISP. All sites are
written using DW8,
traditional ASP with an access database DSN.
When I advised them of this I was advised that there was
nothing they could
do and that I should upgrade my sites to SQL Server. (at a
price of course)
They referred me to this comment from Microsoft:
"...we recommend that Microsoft Access be used solely for
development
purposes and not for production. Microsoft Access was
designed as a
single-user desktop database, and not for server use. When
multiple,
concurrent users make requests of a Microsoft Access
database, unpredictable
results may occur"
I could understand this if my sites were experiencing
extremely heavy
traffic but this simply isn't the case.
Frankly, I'm sure the ISP is using this as an excuse to avoid
looking into
the shortcomings of their own systems. Trouble is I can't
find much in the
way of amunition to contradict them.
Can anybody help please?
Thanks in advance
Ken

Thanks Paul
I'll speak to the ISP about the application pool first I
think
Ken
"Paul Whitham AdobeCommunityExpert"
<[email protected]> wrote in message
news:[email protected]...
> Ken
>
> Access is supposed to be able to support 256 users but
in practise this
> number is significantly lower. I do know from experience
that we had
> significant improvements in both speed and reliability
in moving a site
> from Access to SQL and this was on a site that would be
lucky if it had 10
> users accessing the database.
>
> Having said this on a shared server your site could be
being affecting by
> other sites. Initially I would see if the host is
willing to place the
> site in its own application pool.
>
>
> --
> Paul Whitham
> Certified Dreamweaver MX2004 Professional
> Adobe Community Expert - Dreamweaver
>
> Valleybiz Internet Design
> www.valleybiz.net
>
> "Ken Renwick" <[email protected]> wrote in
message
> news:[email protected]...
>> Hi all,
>>
>> I've been recently experiencing dramatic
fluctuations in the speed of the
>> sites I have hosted with a particular ISP. All sites
are written using
>> DW8, traditional ASP with an access database DSN.
>>
>> When I advised them of this I was advised that there
was nothing they
>> could do and that I should upgrade my sites to SQL
Server. (at a price of
>> course)
>>
>> They referred me to this comment from Microsoft:
>>
>> "...we recommend that Microsoft Access be used
solely for development
>> purposes and not for production. Microsoft Access
was designed as a
>> single-user desktop database, and not for server
use. When multiple,
>> concurrent users make requests of a Microsoft Access
database,
>> unpredictable results may occur"
>>
>> I could understand this if my sites were
experiencing extremely heavy
>> traffic but this simply isn't the case.
>>
>> Frankly, I'm sure the ISP is using this as an excuse
to avoid looking
>> into the shortcomings of their own systems. Trouble
is I can't find much
>> in the way of amunition to contradict them.
>>
>> Can anybody help please?
>>
>> Thanks in advance
>>
>> Ken
>>
>
>

Similar Messages

  • Command Window Database Access via a DataSource

    Hi.
    I've succeeded in accessing a MySQL database via a DataSource from a servlet that makes use of a DAO. However, I would now like to use the same DAO to access the database from a standalone, command window program.
    The error that I am getting is "javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial". This error is generated by the second of the following two lines in the DAO:
    Context initialContext = new InitialContext();
    Context context = (Context)initialContext.lookup("java:comp/env");
    Is there any way in which I can get a standalone program to make use of my server.xml and web.xml DataSource mappings to access the database??
    Any help would be most appreciated.
    Thanks in anticipation.
    Jan

    The error that I am getting is
    "javax.naming.NoInitialContextException: Need to
    specify class name in environment or system property,
    or as an applet parameter, or in an application
    resource file: java.naming.factory.initial". This
    error is generated by the second of the following two
    lines in the DAO:
    Context initialContext = new InitialContext();
    Context context =
    (Context)initialContext.lookup("java:comp/env");
    The error itself suggests some solution to you. You need to specify the environment variables in the parameter to the InitialContext constructor. something like this...
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://localhost:7001");
    Context context = new InitialContext(env);Cheers!
    ***Annie***

  • Command Window Database Access via a DataSource (Pt 2)

    Hi.
    For those of you (especially duffymo) who were good enough to make suggestions concerning my problems when attempting to access an Oracle 10g database via a DataSource from a servlet the week before last, I'm pleased to say that I got that working on my return from holiday!
    Now to return to an earlier problem...
    I'd like to access the same database from a standalone, command window program and have tried setting the INITIAL_CONTEXT_FACTORY and PROVIDER_URL properties as shown below.
    Hashtable envt = new Hashtable();
    envt.put(Context.INITIAL_CONTEXT_FACTORY,
    "org.apache.commons.dbcp.BasicDataSourceFactory");
    envt.put(Context.PROVIDER_URL, "http://localhost:8080");
    Context initialContext = new InitialContext(envt);
    Context context =(Context)initialContext.lookup("java:comp/env");
    DataSource dataSource =(DataSource)context.lookup("jdbc/Oracle_Finances");
    connection = dataSource.getConnection();
    However, this generates error messages with root exception "java.lang.ClassNotFoundException: org.apache.comons.dbcp.BasicDataSourceFactory".
    If I copy the JAR file containing BasicDataSourceFactory (viz. commons-dbcp-1.2.1.jar) from Tomcat's common\lib folder into Java's jre\lib\ext folder, then I get a similar set of error messages, but the root exception changes from ClassNotFoundException to "java.lang.ClassCastException: org.apache.comons.dbcp.BasicDataSourceFactory".
    Does anybody know where the problem lies??
    Any help most appreciated.
    Cheers.
    Jan

    I'd like to access the same database from a
    standalone, command window program and have tried
    setting the INITIAL_CONTEXT_FACTORY and PROVIDER_URL
    properties as shown below.I've never done this. I'm not sure if it can or should be done.
    The problem is that the standalone app isn't part of any Tomcat context.
    It also ties your standalong app to Tomcat. I don't think you want to do that.
    There's got to be a way to manage this without resorting to Tomcat. I'd look at the Commons docs to see.
    If I copy the JAR file containing
    BasicDataSourceFactory (viz. commons-dbcp-1.2.1.jar)
    from Tomcat's common\lib folder into Java's
    jre\lib\ext folder, This is a terrible idea. You shouldn't be putting anything in jre/lib/ext - it'll cause more problems than it's worth.
    Create a /lib directory for your project and put the 3rd party JARs in there. Disk space is cheap, and keeping all the artifacts that you need to create your app in one place is a good idea.
    %

  • Database Access via WLS Datasource

    I need to access a database resource by JNDI Datasource lookup and not by JDBC Direct Connection. This is needed because the underlying database is an Oracle RAC with several machines and my intention is to use WLS MultiDatasource Feature to round-robin and failover all the database needs.
    Could someone help me ??
    Thanks in advance

    I'd like to access the same database from a
    standalone, command window program and have tried
    setting the INITIAL_CONTEXT_FACTORY and PROVIDER_URL
    properties as shown below.I've never done this. I'm not sure if it can or should be done.
    The problem is that the standalone app isn't part of any Tomcat context.
    It also ties your standalong app to Tomcat. I don't think you want to do that.
    There's got to be a way to manage this without resorting to Tomcat. I'd look at the Commons docs to see.
    If I copy the JAR file containing
    BasicDataSourceFactory (viz. commons-dbcp-1.2.1.jar)
    from Tomcat's common\lib folder into Java's
    jre\lib\ext folder, This is a terrible idea. You shouldn't be putting anything in jre/lib/ext - it'll cause more problems than it's worth.
    Create a /lib directory for your project and put the 3rd party JARs in there. Disk space is cheap, and keeping all the artifacts that you need to create your app in one place is a good idea.
    %

  • Best way to access JNDI configured DataSource from outside container

    I'm not sure if this is the right forum category, but it seemed like a good place to start.
    I have a DB2 database on an OS/390 mainframe that is configured as a JNDI datasource in WebSphere (WSAD) 5.1.x. I can get connections and do database transactions within my web-application just fine.
    Part of my project needs a cron managed stand-alone application to do some database clean up work. It essentially needs to query one database, and then based on the results stick some data into the DB2 database. Easy enough right?
    The issue here is that our Security department will not under any circumstances give us the passwords and users for either database. They give these only to the server admins who configure WSAD. We also can't use a properties file. The server admins either won't touch any properties file (it is considered "code" and they don't want to be responsible for problems) or they won't have access to the contents of the ears or jars we give them. This basically leaves us with our JNDI datasource as the only datasource we could access (because the admins will have it configured with a username and password). There is also no way to infer a valid username/password from the owner of the web-app since it will live on an NT box and the NT user won't have mainframe rights.
    There is also no possibility of bending these rules no matter how stupid or cumbersome they are.
    So my question is, what is the best method in which to gain access to this JNDI DataSource or a Connection from this DataSource? Can I even get a DataSource from a JNDI lookup? Is JMS/RMI or some other acronymn that I don't know about the only way to acomplish this?
    We're using Struts MVC -> Spring -> Hibernate in the webapp, if that helps.
    Thanks in advance.

    You seem to be asking: "how can a standalone app get a valid DB2 connection by leveraging the live objects in a WSAD application"?
    While this is pretty far from my area of expertise, I don't think you can. While both JMS and RMI (and other technologies) can export some types of Java objects, they have to be objects that implement the java.io.Serializable interface. Connections cannot be serialized because these objects (normally) encapsulate a live TCP/IP connection. I don't see any fundamental reason a DataSource object couldn't be serialized other than security, but that very reason means that no reasonable implementation is going to be serializable; if it were serializable, you could almost certainly extract the value of the username and password from the serialized object. In other words, what you're really trying to do is get around security and Java's security is probably robust enough to prevent it.
    If the DB credentials only live in the WSAD world, that's where the database work has to be done. However, there's no reason the work can't be driven by a servlet or JSP that is in turn invoked from a cron-driven script or application. Personally, I do such "event notifier" scripts in Perl; Java is a bit heavy for "start up, post to URL, shutdown", but if you have more work going on you could certainly use Java. If actually doing the work in the WSAD application is not acceptable, then you're probably stuck.

  • Access to local DataSource tries to connect to remote server after ejb call to remote server

    I've run into a problem with code that worked fine under WebLogic 6.1 SP4, but I'm having difficulty migrating it to WebLogic 8.1 SP2.
              I have two weblogic instances running in separate domains (InstanceA and InstanceB). The two domains have the same crentential configured to setup the trust relationship.
              InstanceA runs on my local machine. It contains Stateless Session Beans StatelessSessionBeanA1, StatelessSessionBeanA2, and DataSourceA1
              InstanceB runs on a different machine. It contains StatelessSessionBeanB1.
              A function A1Func1 in StatelessSessionBeanA1
              1) creates an initial context to connect to InstanceB
              2) calls a method B1Func1 on StatelessSessionBeanB1
              3) closes that context to InstanceB
              4) Calls a method A2Func1 on StatelessSessionBeanA2
              5) manipulates several entity beans
              6) returns
              A1Func1, A2Func1, B1Func1 have the "Required" transaction attribute set.
              Steps 1,2,3 work fine, but on step 4, when A2Func1 attempts to get a Connection from the DataSourceA1, it gets an exception:
              java.sql.SQLException: Could not get remote server connection url = t3://(IP/port of InstanceB)
              at weblogic.jdbc.jts.Driver.createRemoteConnection(Driver.java:305)
              at weblogic.jdbc.jts.Driver.connect(Driver.java:157)
              at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
              ... enters my application code
              A2Func1 works fine elsewhere, so on a hunch, I tried making A2Func1 have the "RequiresNew" transaction attribute. This causes steps 1,2,3,4 to work, but in step 5, when the entity beans attempt to get a connection from DataSourceA1, it runs into the same exception
              java.sql.SQLException: Could not get remote server connection url = t3://(IP/port of InstanceB)
              at weblogic.jdbc.jts.Driver.createRemoteConnection(Driver.java:305)
              at weblogic.jdbc.jts.Driver.connect(Driver.java:157)
              at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
              at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSPersistenceManager.java:2247)
              Any ideas why calling out to StatelessSessionBeanB1 would cause things inside the same transaction to try to get their datasource from InstanceB? Again, this code worked fine under WebLogic 6.1
              And ideas would be appreciated.
              Thanks,
              --Andy
              

              As a follow up, no solution, but a workaround - we changed the transaction setting
              on B1Func1 (which was a read type method) on InstanceB's StatelessSessionBeanB1
              to NotSupported, and everything started working again.
              --Andy
              Andrew Delpha <[email protected]> wrote:
              >I've run into a problem with code that worked fine under WebLogic 6.1
              >SP4, but I'm having difficulty migrating it to WebLogic 8.1 SP2.
              >
              >I have two weblogic instances running in separate domains (InstanceA
              >and InstanceB). The two domains have the same crentential configured
              >to setup the trust relationship.
              >
              >InstanceA runs on my local machine. It contains Stateless Session Beans
              >StatelessSessionBeanA1, StatelessSessionBeanA2, and DataSourceA1
              >
              >InstanceB runs on a different machine. It contains StatelessSessionBeanB1.
              >
              >
              >A function A1Func1 in StatelessSessionBeanA1
              >1) creates an initial context to connect to InstanceB
              >2) calls a method B1Func1 on StatelessSessionBeanB1
              >3) closes that context to InstanceB
              >4) Calls a method A2Func1 on StatelessSessionBeanA2
              >5) manipulates several entity beans
              >6) returns
              >
              >A1Func1, A2Func1, B1Func1 have the "Required" transaction attribute set.
              >
              >
              >Steps 1,2,3 work fine, but on step 4, when A2Func1 attempts to get a
              >Connection from the DataSourceA1, it gets an exception:
              >java.sql.SQLException: Could not get remote server connection url = t3://(IP/port
              >of InstanceB)
              > at weblogic.jdbc.jts.Driver.createRemoteConnection(Driver.java:305)
              > at weblogic.jdbc.jts.Driver.connect(Driver.java:157)
              > at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
              > ... enters my application code
              >
              >A2Func1 works fine elsewhere, so on a hunch, I tried making A2Func1 have
              >the "RequiresNew" transaction attribute. This causes steps 1,2,3,4
              >to work, but in step 5, when the entity beans attempt to get a connection
              >from DataSourceA1, it runs into the same exception
              >java.sql.SQLException: Could not get remote server connection url = t3://(IP/port
              >of InstanceB)
              > at weblogic.jdbc.jts.Driver.createRemoteConnection(Driver.java:305)
              > at weblogic.jdbc.jts.Driver.connect(Driver.java:157)
              > at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
              > at weblogic.ejb20.cmp.rdbms.RDBMSPersistenceManager.getConnection(RDBMSPersistenceManager.java:2247)
              >
              >Any ideas why calling out to StatelessSessionBeanB1 would cause things
              >inside the same transaction to try to get their datasource from InstanceB?
              > Again, this code worked fine under WebLogic 6.1
              >
              >And ideas would be appreciated.
              >Thanks,
              >--Andy
              

  • LDAP access info in datasource xml file for multidomain Test Connect fails.

    Hello SDN
    I've gone through the video that explains how to setup the multidomain conf.
    I have my service users but when it comes to enter the ldap access user I'm not sure what info to enter.
    My ldap user is created at the  company.com level not at the domain1.company.com level as is indicated in the video.
    I entered the following values
    ume.ldap.access.server_name> server1
    ume.ldap.access.user> [email protected]
    ume.ldap.access.base_path.user> CN=USERS,DC=COMPANY,DC=COM
    ume.ldap.access.base_path.grup> CN=USERS,DC=COMPANY,DC=COM
    And when I try to test connection I'm getting an error. So I have two questions:
    Should the ldap account be created at the domain1.company.com level?
    And how do I get the correct info to populate the base_path fields? Not sure where to get it, I just followed video.
    Thanks for any help.
    MR

    Couple of things.,
    1. What LDAP you are using
    2. What kind of hierarchy (flat or deep)
    The hierachy will decide the user path and the group path.
    Given you have all the right values then you populate the values for the foolowing.,
    - Server Name or IP
    - Server port number
    - LDAP user name by (used for connectivity and access which should have enough rights)
    - Password for the LDAP user
    - User path
    - Group path
    With all the above given right the test connection should succeed.
    Optionally SSL can be enabled for LDAP connectivity and can specify unique attribute for UME unique ID (this field will be uid for SUN LDAP and samaccountname for MS AD)
    Regards,
    Muthu Kumaran KG

  • Accessing a DataSource with a userid, password.

    I am getting an SQL Exception with trying to create a database connection using a datasource with userid and password, I can log in to the database manually with the credentials but when I try to access via the datasource this is the error returned.
    java.sql.SQLException: java.sql.SQLException: User: doug, failed to be authenticated.
    <code>
    //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    // start getConnection
    //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    * Creates a new connection to the database
    * @return the connection object
    public Connection getConnection() throws Exception{
    Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup("JDBC-GSFP_ResourceTracker");
    return(dataSource.getConnection("doug","root"));
    } // end getConnection
    </code>
    Any Ideas,

    Hi
    When you created DataSource in Weblogic Admin Console, at one point, you will give all the db details like DB Host, port, sid and username/password. You can TEST the connection also right there. If it says success, thats it.
    Now, on the java side, you do Initial context and do JNDI Lookup for that DataSource and directly get the DataSource. There is no need to pass again username/password from Java Side. Just use dataSource.getConnection() without any arguments.
    public Connection getConnection() throws Exception{
    Context context = new InitialContext();
    DataSource dataSource = (DataSource) context.lookup("JDBC-GSFP_ResourceTracker");
    return(dataSource.getConnection());
    } // end getConnection
    Thanks
    Ravi Jegga

  • How do I use a JNDI datasource in my application?

    Not sure how to access the JNDI datasource i setup in my config.xml. I tried to browse it at rmi://localhost:1099/ but it only shows jmxrmi in the tree.
    My config.xml looks like
    <n1:config xsi:schemaLocation="http://www.bea.com/ns/wlevs/config/server wlevs_server_config.xsd" xmlns:n1="http://www.bea.com/ns/wlevs/config/server" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <netio>
        <name>NetIO</name>
        <port>9002</port>
      </netio>
      <work-manager>
        <name>JettyWorkManager</name>
        <min-threads-constraint>5</min-threads-constraint>
        <max-threads-constraint>10</max-threads-constraint>
      </work-manager>
      <jetty>
        <name>JettyServer</name>
        <network-io-name>NetIO</network-io-name>
        <work-manager-name>JettyWorkManager</work-manager-name>
      </jetty>
      <rmi>
        <name>RMI</name>
        <http-service-name>JettyServer</http-service-name>
      </rmi>
      <jndi-context>
        <name>JNDI</name>
      </jndi-context>
      <exported-jndi-context>
        <name>exportedJndi</name>
        <rmi-service-name>RMI</rmi-service-name>
      </exported-jndi-context>
      <jmx>
        <jndi-service-name>JNDI</jndi-service-name>
        <rmi-service-name>RMI</rmi-service-name>
        <rmi-registry-port>1099</rmi-registry-port>
        <rmi-jrmp-port>9999</rmi-jrmp-port>
      </jmx>
      <transaction-manager>
          <name>transactionmanager</name>
          <!--max-resource-requests-on-server>1</max-resource-requests-on-server>
          <max-resource-unavailable-millis>1000</max-resource-unavailable-millis-->
      </transaction-manager>
      <data-source>   
          <name>hqsqlconn</name>   
          <driver-params>     
            <url>jdbc:hsqldb:hsql://localhost/wlevdb</url>
            <driver-name>org.hsqldb.jdbcDriver</driver-name>
            <properties>
              <element>
                <name>user</name>
                <value>sa</value>
              </element>
              <element>
                <name>password</name>
                <value></value>
              </element>
            </properties>
            <use-xa-data-source-interface>true</use-xa-data-source-interface>   
          </driver-params>   
          <connection-pool-params>     
            <initial-capacity>1</initial-capacity>     
            <max-capacity>5</max-capacity>     
            <test-table-name>test_table</test-table-name>   
          </connection-pool-params>   
          <data-source-params>     
            <jndi-names>
              <element>hqsqlconn</element>
            </jndi-names>
            <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol>
          </data-source-params> 
      </data-source>
    </n1:config>

    I see what you are saying.
    The JNDI approach should work-we will try to reproduce this internally.
    I would recommend leveraging the OSGi service registry, instead of using JNDI, however. The Event Server is a modular server based on OSGi, so one should use the OSGi service registry whenever possible instead of using the jndi registry. Jndi is primarily there to support legacy code that requires Jndi.
    Any data sources that you configure are automatically registered in the OSGi service registry. When there is more than one data source they can be distinguished using their name.
    There are a couple of options.
    If you want to inject a reference to your datasource into a Spring bean, you can use an annotation, @Service, to annotate a setter method on your bean (see my previous post). The container will then inject a reference to the data source into the bean.
    You can also put the following in your spring application context file
    <osgi:reference id="myDataSource"
    interface="javax.sql.DataSource"/>
    This creates a bean proxy that references the datasource by looking up the datasource in the OSGi service registry. It works similarly to JndiObjectFactoryBean, but it uses the OSGi service registry instead of the JNDI registry. You can read more about it here
    http://www.springframework.org/osgi/specification
    (Look in section 3.3)
    Hope that helps.
    Seth
    Edited by swhite at 08/01/2007 6:19 PM

  • Remote access of InitialContext via JMX client

    Hi,
    I'm not sure if i'm the right place here for posting my problem, but I don't know where to put it otherwise.
    I'm trying to access a JBoss datasource via JMX. The JMX code and datasource code is both placed inside a WAR file that is deployed in Jboss 5.1.
    When I access the datasource from a servlet, it runs oke but when I try to run it from jconsole I get a classnotfoundexception.
    The code where I register the MBean is:
    MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
    try
    ObjectName mbeanName = new ObjectName(OBJECT_NAME);
    Test mbean = new Test();
    mbs.registerMBean(mbean, mbeanName);
    catch (Exception e)
    //handle
    The code where I get the exception is:
    Context initContext = new InitialContext(jndiProps);
    The exception is:
    javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org.jnp.interfaces.NamingContextFactory]
    These are my JNDI props:
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.naming.provider.url=jnp://localhost:1099
    Any ideas?

    OK - I found another thread dealing with the problem at hand.
    http://forums.sun.com/thread.jspa?threadID=5369697
    Edited by: Christian.Yttesen on Jan 13, 2010 5:15 AM

  • How to reference MS Access database in ColdFusion MX 7 on 64-bit Windows

    I am migrating customers from:
    Windows 2000 Server (fully patched)
    Internet Information Services (IIS) 5
    ColdFusion 5
    to:
    Windows Server 2003 Standard x64 Edition (fully patched)
    Internet Information Services (IIS) 6 (running in 32-bit
    mode)
    ColdFusion MX 7 (7.0.2) Standard
    Unfortunately, some of these existing customers are still
    using Microsoft Access databases instead of SQL Server. Having all
    of these existing customers migrate to SQL Server is not yet
    practical. On the old Windows 2000 / ColdFusion 5 server, they are
    using OLE DB data sources to reference the MS Access databases
    using the "Microsoft.Jet.OLEDB.4.0" provider. None are configured
    to use ODBC drivers when referencing MS Access or SQL Server.
    I have yet to figure out how to get ColdFusion MX 7 to:
    - Create a data source that references MS Access databases on
    64-bit Windows.
    - Reference an existing MS Access data source created with
    the 32-bit version of the ODBC Data Source Manager on 64-bit
    Windows.
    A bit of background information regarding MS Access on 64-bit
    Windows:
    - At the time of this writing, Microsoft has not
    created/released 64-bit drivers for Microsoft Access and it's
    unlikely they ever will, for understandable reasons.
    - Contrary to seemingly popular belief, the Microsoft Jet 4.0
    Database Engine does exist on 64-bit Windows. See the following
    regarding version and file location information:
    How to obtain the latest service pack for the Microsoft Jet
    4.0 Database Engine
    http://support.microsoft.com/kb/239114
    - You CAN create MS Access based data sources within 64-bit
    Windows, but they have to be made using the 32-bit version of "ODBC
    Data Source Manager". I'm assuming these DSNs may only be used by
    32-bit applications, but I have not tested that theory.
    32-bit data sources:
    ODBC Data Source Manager:
    %SystemRoot%\SysWOW64\odbcad32.exe
    Registry location:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC
    Default file DSN directory:
    C:\Program Files (x86)\Common Files\ODBC\Data Sources
    64-bit data sources:
    ODBC Data Source Manager:
    %SystemRoot%\system32\odbcad32.exe
    Registry location:
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
    Default file DSN directory:
    C:\Program Files\Common Files\ODBC\Data Sources
    The 64-bit version of "ODBC Data Source Manager" (under
    Administrative Tools) only show "SQL Server" and/or "SQL Native
    Client" as options when creating new data sources, unless
    third-party software is installed that supplies additional drivers.
    The 32-bit version of "ODBC Data Source Manager" (by default,
    there is no shortcut for this in the Start menu) shows the typical
    drivers seen on 32-bit versions of Windows, including SQL Server,
    SQL Native Client, Microsoft Access, Excel, FoxPro, Paradox, etc.
    When using ColdFusion Administrator in ColdFusion MX 7.0.2 in
    64-bit Windows 2003 (IIS is running in 32-bit mode to allow
    ColdFusion MX 7 to function at all), two problems are encountered
    when dealing with MS Access (and presumably other 32-bit drivers).
    In both cases, ColdFusion is trying to reference the registry
    location for 64-bit data sources instead of 32-bit:
    1. Creating a new data source within ColdFusion
    Administrator:
    Data Source Name: whatever
    Driver: Microsoft Access
    CF Data Source Name: whatever
    Database file: (physical path to whatever.mdb)
    (other settings are irrelvant for this example)
    Error generated when submitting:
    Unable to update the NT registry.
    Cannot open HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC
    Data Sources: Windows error number 5 occurred.Access is denied.
    ColdFusion stores the data source, however a "verify"
    generates the following error:
    Connection verification failed for data source: whatever
    java.sql.SQLException: [Macromedia][SequeLink JDBC
    Driver][ODBC Socket]internal error: Data source name not found and
    no default driver specified
    The root cause was that: java.sql.SQLException:
    [Macromedia][SequeLink JDBC Driver][ODBC Socket]internal error:
    Data source name not found and no default driver specified
    2. Creating the data source using the 32-bit version of "ODBC
    Data Source Manager" then trying to reference it with ColdFusion:
    ODBC Data Source Manager:
    System DSN or File DSN:
    Name: whatever
    Driver: Microsoft Access Driver (.mdb)
    Database: (physical path to whatever.mdb)
    (creation is successful within ODBC Data Source Manager)
    Reference the above DSN within ColdFusion Administrator:
    Data Source Name: whatever
    Driver: ODBC Socket
    Error generated when submitting:
    Error accessing available odbc datasources. - Cannot open
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources:
    Windows error 2 occurred.The system cannot find the file specified.
    ColdFusion MX 7 can't find the 32-bit data source on 64-bit
    Windows because it's looking for it in the wrong registry location.
    Can ColdFusion MX 7 be configured to look in
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC
    instead of
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
    on a 64-bit Windows machine?

    Paul,
    Thanks for the insight on this. Regarding the initial problem
    I ran into with creating Access based DSNs, very early-on, I
    noticed there were two different driver options for Access
    displayed within ColdFusion MX 7 Administrator:
    Microsoft Access
    Microsoft Access with Unicode
    For reasons I'm am still baffled over, I somehow completely
    forgot about and through the wonders of apparent tunnel vision,
    completely overlooked the "Microsoft Access with Unicode" driver
    option when I was running through my tests.
    At your seemingly-obvious suggestion, I created a data source
    using the Microsoft Access with Unicode driver and it worked
    perfectly fine with the one customer's web site I'm using for
    testing (of course, this is a copy--the production site is still
    housed on the old ColdFusion 5 server). This obviously doesn't
    actually fix the underlying issue with ColdFusion looking in the
    wrong part of the registry on 64-bit Windows, but at least when it
    comes to dealing with Access databases, your suggestion of using
    the Microsoft Access with Unicode driver appears to be a functional
    work-around. So long as there aren't any surprises waiting for me,
    hopefully this will also work for the remaining ColdFusion sites I
    have to migrate that are using Access databases.
    Since you mentioned JDBC drivers in comparison with ODBC, I'm
    pointing out a couple of references in case they're helpful to
    anyone following this thread:
    ColdFusion MX 7 - About JDBC
    http://livedocs.adobe.com/coldfusion/7/htmldocs/00001736.htm
    Types of JDBC technology drivers
    http://java.sun.com/products/jdbc/driverdesc.html
    http://java.sun.com/products/jdbc/
    I don't actually develop anything in ColdFusion, so I'm
    dealing with all of this from a server administration standpoint
    since we do have some domain hosting customers that do develop or
    at least have existing ColdFusion based sites. I am all
    too-familiar with the caveats of using Access in any kind of
    production or heavily used environment and have spent years keeping
    users away from ODBC. For ColdFusion users, that meant creating OLE
    DB DSNs and often having to fix poorly written SQL statements and
    fixing ColdFusion date-related values and boolean values (the
    common problems encountered when switching CF / MS Access users
    from ODBC to OLE DB). I can only recall running into problems with
    a single SQL Server based ColdFusion site when migrating from ODBC
    to OLE DB. That customer never did get their many coding problems
    fixed, so they're the only ones still using ODBC in CF. I have no
    idea what'll happen when that one site gets migrated over--if it'll
    even work. Obviously a lot of things have changed between
    ColdFusion 5 and the MX versions that have come along afterward.
    Thanks again for the Access with Unicode driver tip and JDBC
    info. It looks like I can finally start moving forward again with
    the site migration process.
    Josh

  • Using Portable datasource lookup for a java client in OC4J 10g

    Hi,
    I'm in the process of porting a standalone java client to j2ee. At the moment I have a thick java client which uses jndi to access a global datasource configured on the OC4J server (10.1.2.0.2) and it works fine.
    Using the 'Services Guide' I decided the next step was to deploy the client as a J2EE application. At the moment the j2ee application only contains the descriptors (i.e application-client.xml and orion-application-client.xml packaged under META-INF in a .jar. This is, in turn, packaged in an .ear along with application.xml (again under META-INF.)
    This is where I'm hitting problems. The following config produces a 'javax.naming.NameNotFoundException' error
    application.xml
    <application>
         <display-name>appName</display-name>
         <description>appDescription</description>
    </application>
    application-client.xml :-
    <application-client>
         <display-name>appName</display-name>
         <resource-ref>
              <res-ref-name>jdbc/MaptoTest</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>Container</res-auth>
         </resource-ref>
    </application-client>
    orion-application-client.xml :-
    <orion-application-client>
         <resource-ref-mapping name="jdbc/MaptoTest" location="jdbc/Test"/>
    </orion-application-client>
    jndi.properties :-
    java.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory
    java.naming.provider.url=opmn:ormi://<machine>:6004:<OC4J_INSTANCE>/appName
    java.naming.security.principal=<USERNAME>
    java.naming.security.credentials=<PASSWORD>
    client.class
    ctx = new InitialContext();
    ds = (DataSource)ctx.lookup("java:comp/env/jdbc/jdbc/MaptoTest"));
    "jdbc/Test" was configured through OAS and is present in data-sources.xml (it is the ejb-location property).
    I'm running the client through Jdeveloper. I've used SJSAS previously and was use to configuring and deploying a application module through it's own tool. SJSAS also has a tool (appclient) for running the client. Is there something similar I should be using in OC4J?
    The services guide only mentions web.xml and ejb-jar for portable datasource lookup but I assume it's also possible using application-client.xml.
    It seems to me that my descriptors don't mention the j2ee application explicitly. Am I missing an entry in one of the xml descriptors. Any help would be appreciated this is driving me crazy!
    Thanks in advance for any advice.

    Hi Geoff,
    The configurations for your client.xml files look ok. Question: where did you configure the datasources.xml i.e. under j2ee/<OC4J_Name>/config or under the application-deployments/<appname>, kindly check and let us know.
    Thanks,
    Deepak

  • Problem in accessing Data Source Deployed in JBoss using JNDI

    Hi everybody!
    I need your help in the next question:
    I have created a data source to connect to my MySql data base using the following entry in mysql-ds.xml (JBOSS 3.2.5)
    <datasources>
        <local-tx-datasource>
            <jndi-name>MySqlDS</jndi-name>
            <connection-url>jdbc:mysql://localhost:3306/mytest</connection-url>
            <driver-class>com.mysql.jdbc.Driver</driver-class>
            <user-name>root</user-name>
            <password>1</password>
        </local-tx-datasource>
    </datasources> in Eclipse SDK 3.1.2 i trying get access to the datasource
    InitialContext initialContext = new InitialContext();
    DataSource  ds = (DataSource)initialContext.lookup("java:/MySqlDS");
    if (ds != null) {
        result = ds.getConnection();
                       System.out.println("OK");
        else {
             System.out.println("Failed to lookup datasource.");
        } http://localhost:8080/jmx-console service = JNDI name equal "java:/MySqlDS"
    I have error "Cannot get connection: javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial"
    Error happen in
    DataSource  ds = (DataSource)initialContext.lookup("java:/MySqlDS");I trying
    DataSource  ds = (DataSource)initialContext.lookup("MySqlDS");and i had such error.
    Can anybody help me?

    hi,
    please check is your error corrected
    public class DBConnection {
         static DataSource dataSource = null;
         * To get the datsource
         public static DataSource getDatasource() {
              InitialContext ctx=null;
         if (dataSource == null){
         try {
              ctx=new InitialContext();
    dataSource = (DataSource) ctx.lookup("java:/MySqlDS");
         } catch (Exception e) {
         System.out.println("eror in DataSource class"+e);
         try {
         ctx.close();
         } catch (Exception e) {
              System.out.println("eror in DataSource class context closing"+e);
         return dataSource;
         * To get connection from Database.
         public static Connection getConnection() {
                   Connection con = null;
                   DataSource dataSource = null;
                   try {
                        dataSource =getDatasource();
                        con = dataSource.getConnection();
                   } catch (SQLException e) {
                        e.printStackTrace();
                   } catch (Exception e) {
                        e.printStackTrace();
                   return con;
    if you want a connetion then call Connection con=DBConnection .getConnection()
    hope this helps you

  • ORA-01002: fetch out of sequence using multiple XA datasources

    Hi,
    I have a problem accessing multiple XA datasources :
    - launch an sql request on datasource 1
    - rs.next() on the resultset
    - use the data to launch another sql request on datasource 2
    After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
    After further investigation, I noticed that :
    - the problem doesn't occur if the same datasource is used for the 2 requests
    - if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
    Anyone experiencing the same problem ?
    Thanks in advance
    Nicolas
    Here's my configuration :
    - Weblogic 8.1 SP4
    - JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
    - Oracle 10g
    - Oracle thin driver xa 10.1.0.2.0
    A JSP I use to reproduce the problem :
    <pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList,
                        java.sql.Connection,
                        java.sql.PreparedStatement,
                        java.sql.ResultSet,
                        java.sql.SQLException,
                        javax.naming.InitialContext,
                        javax.naming.NamingException,
                        javax.sql.DataSource,
                        javax.transaction.UserTransaction"%>
    <%!
         public void launchTest() throws Exception {
              Connection cnx =null ;
              try {
                   getUserTransaction().begin();
                   // SQL access #1
                   cnx = getConnection("jdbc/xaDatasource1");
                   PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
                   ResultSet rs = stmt.executeQuery();
                   // iterate on resulset from SQL 1
                   int i=1;
                   while (rs.next()){ // SQL exception after 10 iterations
                        System.out.println(i + "");
                        i++;
                        // SQL access #2
                        Connection cnx2 = getConnection("jdbc/xaDatasource2");
                        // problem occurs even if we don't request
                        cnx2.close();
                        // end SQL access #2
                   getUserTransaction().commit();
              } catch (Exception e) {
                   e.printStackTrace();
                   try {
                        getUserTransaction().rollback();
                   } catch (Exception e1) {
                        e1.printStackTrace();
                        throw e;
              } finally {
                   try {
                        if (cnx != null && !cnx.isClosed())
                             cnx.close();
                   } catch (Exception e1) {
                        e1.printStackTrace();
         private UserTransaction getUserTransaction() throws NamingException {
              return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
         private Connection getConnection(String jndiName) throws NamingException, SQLException {
              DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
              return ds.getConnection();
    %>
    <%
    launchTest();
         SQL CODE :
         CREATE TABLE TEST_TABLE (     TEST_COL NUMBER(2));
         insert into test_table values(1);
         insert into test_table values(2);
         insert into test_table values(3);
         insert into test_table values(4);
         insert into test_table values(5);
         insert into test_table values(6);
         insert into test_table values(7);
         insert into test_table values(8);
         insert into test_table values(9);
         insert into test_table values(10);
         insert into test_table values(11);
    %>
    </pre>

    Nicolas Mervaillie wrote:
    Hi,
    I have a problem accessing multiple XA datasources :
    - launch an sql request on datasource 1
    - rs.next() on the resultset
    - use the data to launch another sql request on datasource 2
    After 10 iterations, the next() method throws an SQLException (ORA-01002: fetch out of sequence).
    After further investigation, I noticed that :
    - the problem doesn't occur if the same datasource is used for the 2 requests
    - if I set the fetch size to 15 for the first request, the exception is thrown after 15 iterations (but I can't use this as a workaround because the number is potentially above the million).
    Anyone experiencing the same problem ?Hi. This is a known weakness of Oracle. If the XA transactional context of a connection
    changes during a result set processing, even if it is switched back correctly, the result
    set is aborted. If the oracle driver has fetched 10 rows, that's all you get. The next
    call to next() that needs real DBMS communication will fail.
    By spec, an XA connection should be able to be swapped out and enlisted in different
    transactions at a per-call granularity, so our pools allow that by default. Try setting
    the KeepXAConnTillTxCOmplete setting in your pool.
    When a connection is put back in the pool, if it is an XA connection we will suspend
    any user tx, and test it with our own test tx, then re-enlist and re-start the user
    tx in flight. This may be the context switch that kills the oracle result set.
    Joe
    >
    Thanks in advance
    Nicolas
    Here's my configuration :
    - Weblogic 8.1 SP4
    - JDK sun 1.4.2_04 (we have the same problem with various JDKs including JRockit)
    - Oracle 10g
    - Oracle thin driver xa 10.1.0.2.0
    A JSP I use to reproduce the problem :
    <pre><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ page import="java.util.ArrayList,
                        java.sql.Connection,
                        java.sql.PreparedStatement,
                        java.sql.ResultSet,
                        java.sql.SQLException,
                        javax.naming.InitialContext,
                        javax.naming.NamingException,
                        javax.sql.DataSource,
                        javax.transaction.UserTransaction"%>
    <%!
         public void launchTest() throws Exception {
              Connection cnx =null ;
              try {
                   getUserTransaction().begin();
                   // SQL access #1
                   cnx = getConnection("jdbc/xaDatasource1");
                   PreparedStatement stmt = cnx.prepareStatement("SELECT test_col from test_table");
                   ResultSet rs = stmt.executeQuery();
                   // iterate on resulset from SQL 1
                   int i=1;
                   while (rs.next()){ // SQL exception after 10 iterations
                        System.out.println(i + "");
                        i++;
                        // SQL access #2
                        Connection cnx2 = getConnection("jdbc/xaDatasource2");
                        // problem occurs even if we don't request
                        cnx2.close();
                        // end SQL access #2
                   getUserTransaction().commit();
              } catch (Exception e) {
                   e.printStackTrace();
                   try {
                        getUserTransaction().rollback();
                   } catch (Exception e1) {
                        e1.printStackTrace();
                        throw e;
              } finally {
                   try {
                        if (cnx != null && !cnx.isClosed())
                             cnx.close();
                   } catch (Exception e1) {
                        e1.printStackTrace();
         private UserTransaction getUserTransaction() throws NamingException {
              return (UserTransaction) new InitialContext().lookup("java:comp/UserTransaction");
         private Connection getConnection(String jndiName) throws NamingException, SQLException {
              DataSource ds = (DataSource) new InitialContext().lookup(jndiName);
              return ds.getConnection();
    %>
    <%
    launchTest();
         SQL CODE :
         CREATE TABLE TEST_TABLE (     TEST_COL NUMBER(2));
         insert into test_table values(1);
         insert into test_table values(2);
         insert into test_table values(3);
         insert into test_table values(4);
         insert into test_table values(5);
         insert into test_table values(6);
         insert into test_table values(7);
         insert into test_table values(8);
         insert into test_table values(9);
         insert into test_table values(10);
         insert into test_table values(11);
    %>
    </pre>

  • How to access MultiDataSource in Weblogic 10.3  using jmx

    Hi ,
    I am looking for some sample jmx code or document which provides enough details to access JDBC Multi DataSource in Weblogic 10.3.
    Thanks in Advance

    http://www.oracle.com/technology/products/weblogic/howto/rac/index.html
    For the java code to do it you can start a WLST recording before you create the multi-data source which should get you started.

Maybe you are looking for

  • Compaq machines and Java Plug-in 1.2.2

    We have installed the Java Plug-In v1.2.2 on an IBM, Dell, and Compaq machines. The os on all 3 machines is Windows 2000. Our Java applet runs fine on the IBM and Dell machines. The applet does not run at all on the Compaq machine, even though it has

  • Changing Audio Language in Netflix (Latin America)

    Hi all, I´m having issues with Netflix in Latin America from an Apple TV. Many movies have three languages (spanish, english and portuguese) and depending the availabitty it starts by default in spanish. I prefer english but i can´t find the way to c

  • Running multiple IE sessions each using different version of RE

    I understand that it is being said that multiple versions of the JRE can be run in different browser sessions. However, multiple versions cannot be run in the same browser session. I have 2 web applications one uses 1.3.1_04 and the other 1.4.2_10. H

  • GR related message for a PO in RZ20

    Hi SRM Gurus I am in the process of setting up SRM 5.0 Extended classic. For some reason, the display PO is not visible in ECC5. I have checked RZ20 and the error message states 'PurchOrder x000000001: Indicator for GR used not allowed' Please can so

  • Siri & Map

    Siri & Map will not give me voice response, only displaying the data on the screen. My volume is on and Siri is enabled. I tried resetting my settings but that did not work.