Client Id in use - WL6.1 sp3   server to server JMS messaging

Any feedback would be greatly appreciated. THANKS!
          -Alan May
          Scenario:
          Two weblogic 6.1 sp3 instances running on two separate Solaris 8 boxes.
          Server a - a message producer(client) for a number of topics and queues on b
          Server b - hosts JMS services including all the topics and queues, has both
          message producers and mdb consumers for a number of topics and queues
          What I've set up: a durable connection factory for topics for server a,
          topics for server b, queues for server a, and queues for server b (all
          targeted to server b)
          I have a singleton on each server that has methods to retrieve the queue
          connection or topic connection appropriate for that server(a single
          connection is
          shared for all topic producers and a separate connection is share for all
          queue producers for each server)
          I have each producer open and close a new session every time. However, the
          topic and queue connections are shared for all producers for that JVM. This
          seemed to be the approach recommended by the JMS spec, but do you feel this
          is the appropriate granularity given the above scenario? I am not currently
          closing my jms connection as part of a weblogic shutdown class. Is that
          essential in that case? If the server crashes - are there any
          recommendations on how to handle(if closing the connection is the issue)?
          I've confirmed that my JMS clients running with server b are not using the
          connection factories setup for a's use.
          Issue:
          Everything works on server b as expected.
          Server a's connections seemed to be fouled. I was getting that the clientid
          was in use(stack trace included below) while trying to fetch the connection.
          I stopped server a, removed the fouled connection factories on server
          b(dedicated for server a's use), and created new connection factories for
          a's use. I stopped server b and deleted everything from the two JMSState
          and JMSStore tables, restarted a then b, and tried the test again. This
          time the singleton code could fetch the connection without receiving a
          JMSException, but I was getting an exception when I tried to open a session
          from the connection.
          If worst comes to worse, I can stick a stateless session bean on b, to act
          as a delegate producer on behalf of server a, but I'd like to avoid it if
          possible.
          Any recommendations? Please let me know if it would be helpful for me to
          clarify any points.
          Server a's original error:
          weblogic.jms.common.InvalidClientIDException: Client id, Parser.topicPrime,
          is in use
          Start server side stack trace:
          weblogic.jms.common.InvalidClientIDException: Client id, Parser.topicPrime,
          is in use
          at
          weblogic.jms.frontend.FEConnection.setClientId(FEConnection.java:918)
          at weblogic.jms.frontend.FEConnection.<init>(FEConnection.java:178)
          at
          weblogic.jms.frontend.FEConnectionFactory$1.run(FEConnectionFactory.java:319
          at weblogic.management.internal.Helper.doLocally(Helper.java:1656)
          at
          weblogic.jms.frontend.FEConnectionFactory.connectionCreate(FEConnectionFacto
          ry.java:316)
          at weblogic.jms.frontend.FEConnectionFactory_WLSkel.invoke(Unknown
          Source)
          at
          weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
          at
          weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java
          :93)
          at
          weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
          at
          weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
          2)
          at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
          at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
          End server side stack trace
          

Hi Alan,
          Lots of questions in one message! I'm going to
          try and answer them using the shotgun approach -- let
          me know if I miss.
          (1) It is good practice to close JMS resources when you are done
          with them, even if the destination host server crashes. The reason
          is that the connection resource may be hosted on a different
          WL server than the destination.
          (2) Creating a session/producer per message is heavy-weight
          in terms of CPU and network - if your app is performance
          sensitive is is better to cache these resources for re-use.
          See the JMS Performance Guide for details.
          (3) From your description I can't tell which two
          clients are conflicting. If what I'm writing here
          doesn't help, please try to narrow it down and repost.
          (4) Make sure that the connection factory does not have
          a "client-id" configured for it. Otherwise only one client
          can use the connection factory - instead have individual
          clients dynamically set their ids.
          (5) Note that client-ids are usually only useful for
          durable subscriber access, as other types of clients
          generally don't need exclusive connections, and therefore
          don't need client-ids.
          (6) The attached notes, which are for MDBs, may help you
          understand durable subscriptions and client-id's better in general.
          Tom
          Alan May wrote:
          > Any feedback would be greatly appreciated. THANKS!
          >
          > -Alan May
          >
          >
          > Scenario:
          >
          > Two weblogic 6.1 sp3 instances running on two separate Solaris 8 boxes.
          >
          > Server a - a message producer(client) for a number of topics and queues on b
          >
          > Server b - hosts JMS services including all the topics and queues, has both
          > message producers and mdb consumers for a number of topics and queues
          >
          > What I've set up: a durable connection factory for topics for server a,
          > topics for server b, queues for server a, and queues for server b (all
          > targeted to server b)
          >
          > I have a singleton on each server that has methods to retrieve the queue
          > connection or topic connection appropriate for that server(a single
          > connection is
          > shared for all topic producers and a separate connection is share for all
          > queue producers for each server)
          >
          > I have each producer open and close a new session every time. However, the
          > topic and queue connections are shared for all producers for that JVM. This
          > seemed to be the approach recommended by the JMS spec, but do you feel this
          > is the appropriate granularity given the above scenario? I am not currently
          > closing my jms connection as part of a weblogic shutdown class. Is that
          > essential in that case? If the server crashes - are there any
          > recommendations on how to handle(if closing the connection is the issue)?
          >
          > I've confirmed that my JMS clients running with server b are not using the
          > connection factories setup for a's use.
          >
          > Issue:
          > ------
          > Everything works on server b as expected.
          >
          > Server a's connections seemed to be fouled. I was getting that the clientid
          > was in use(stack trace included below) while trying to fetch the connection.
          >
          > I stopped server a, removed the fouled connection factories on server
          > b(dedicated for server a's use), and created new connection factories for
          > a's use. I stopped server b and deleted everything from the two JMSState
          > and JMSStore tables, restarted a then b, and tried the test again. This
          > time the singleton code could fetch the connection without receiving a
          > JMSException, but I was getting an exception when I tried to open a session
          > from the connection.
          >
          > If worst comes to worse, I can stick a stateless session bean on b, to act
          > as a delegate producer on behalf of server a, but I'd like to avoid it if
          > possible.
          >
          > Any recommendations? Please let me know if it would be helpful for me to
          > clarify any points.
          >
          >
          >
          > Server a's original error:
          > weblogic.jms.common.InvalidClientIDException: Client id, Parser.topicPrime,
          > is in use
          >
          > Start server side stack trace:
          > weblogic.jms.common.InvalidClientIDException: Client id, Parser.topicPrime,
          > is in use
          > at
          > weblogic.jms.frontend.FEConnection.setClientId(FEConnection.java:918)
          > at weblogic.jms.frontend.FEConnection.<init>(FEConnection.java:178)
          > at
          > weblogic.jms.frontend.FEConnectionFactory$1.run(FEConnectionFactory.java:319
          > )
          > at weblogic.management.internal.Helper.doLocally(Helper.java:1656)
          > at
          > weblogic.jms.frontend.FEConnectionFactory.connectionCreate(FEConnectionFacto
          > ry.java:316)
          > at weblogic.jms.frontend.FEConnectionFactory_WLSkel.invoke(Unknown
          > Source)
          > at
          > weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
          > at
          > weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java
          > :93)
          > at
          > weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
          > at
          > weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:2
          > 2)
          > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
          > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
          > End server side stack trace
          >
          >
          A durable topic subscriber MDB uses its name to generate its client-id.
          Since JMS enforces uniqueness on this client-id, this means that if a durable
          subscriber MDB is deployed to multiple servers only one server will be able
          to connect. Some applications want a different behavior where
          each MDB pool on each server gets its own durable subscription.
          The MDB durable subscription id, which must be unique on its topic, comes from:
          1) <jms-client-id>MyClientID</jms-client-id>
          (the weblogic dtd)
          2) if (1) is not set then the client-id
          comes from the ejb name.
          The durable subscription is uniquely identified within a cluster by a
          combination of "connection-id" and "subscription-id". Only one active
          connection may use a particular "connection-id" within a WebLogic cluster.
          The connection id comes from:
          1) The "ClientId" attribute configured on the WebLogic connection factory.
          This defaults to null. Note that if the ClientId is set on a connection
          factory, only one connection created by the factory
          may be active at a time.
          2) If (1) is not set, then, as with the subscriber-id,
          the connection-id is derived from jms-client-id descriptor attribute:
          <jms-client-id>MyClientID</jms-client-id>
          (the weblogic dtd)
          3) If (1) and (2) are not set, then, as with the subscriber-id,
          the connection-id is derived from the ejb name.
          Work-around:
          A) Create a custom connection-factory for each server:
          1) configure "JNDIName" to the same value across all servers
          ("myMDBCF" in this example)
          2) configure "ClientId" to a unique value per server
          3) enable "UserTransactionsEnabled"
          4) enable "XAConnectionFactoryEnabled"
          5) set "AcknowledgePolicy" to "ACKNOWLEDGE_PREVIOUS"
          6) target the CF at a single WebLogic server
          (Number 5 is required for non-transactional topic MDBs)
          B) In the MDB's weblogic-ejb-jar.xml descriptor, set the MDB's connection
          factory to the JNDI name of the custom connection factories configured in
          (A). Optionally, also specify the subscriber-id via the jms-client-id
          attribute.
          <weblogic-ejb-jar>
          <weblogic-enterprise-bean>
          <ejb-name>exampleBean</ejb-name>
          <message-driven-descriptor>
          <connection-factory-jndi-name>myMDBCF</connection-factory-jndi-name>
          <jms-client-id>myClientID</jms-client-id>
          </message-driven-descriptor>
          </weblogic-enterprise-bean>
          </weblogic-ejb-jar>
          C) Target the application at the same servers that have the custom connection
          factories targeted at them.
          Notes/Limitations:
          1) If the MDB is moved from one server to another, the MDB's corresponding
          connection-factory must be moved with it.
          2) This work-around will not work if the destination is not in the same
          cluster as the MDB. (The MDB can not use the local connection factory, which
          contains the connection-id, as connection factories do not work unless they
          are in the same cluster as the destination.)
          3) This work-around will not work for non-WebLogic JMS topics.
          

Similar Messages

  • Can ODBC set by Instant Client be used in MS SQL linked Server?

    Hi:
    I want to know if a ODBC set by Instant Client can be used to set a linked server in MS SQL.
    I follow the install instruction about Instant Client.
    I create a ODBC setting and the connection tested successful.
    I also build it in DTS package in MS SQL and the data transfer process can be run correctly.
    But when I tried to build a linked server from MS SQL to oracle, it always returned the error message
    System1 Setting:
    MS Win 2003 + MS SQL 2000 + Instant Client 10.1.0.4
    System2 Setting:
    MS Win 2000 + Oracle 9.2
    Any opinion or suggestion is appreciated.
    Toni Lee

    with t_segment
    as
         select block_id, blocks, owner, segment_name,segment_type
           from dba_extents
          where tablespace_name = upper('&1')
          union all
         select block_id, blocks, 'sys' owner, 'Free' segment_name, 'FREE'
           from dba_free_space
          where tablespace_name = upper('&1')
          order by 1
    t_segment_1
    as
          select block_id,
              blocks,
              owner, segment_name, segment_type,
              owner||'-'||segment_name||'-'||segment_type seg
            from t_segment t
           order by 1
    select block_id, owner, segment_name, segment_type, sum(blocks) blocks
       from (select val block_id, owner, segment_name, segment_type,  blocks
            from (select block_id,
                   blocks,
                            owner, segment_name, segment_type,
                   seg,
                   row_number() over(order by block_id) rno,
                   nvl(lag(seg) over(order by block_id),' ') lag_seg
                 from t_segment_1)
           model
           return updated rows
           dimension by(rno)
           measures(block_id, blocks, seg, lag_seg, 0 val, owner, segment_name, segment_type)
           rules update
              val[any] = case when seg[cv()] <> lag_seg[cv()] then block_id[cv()] else val[cv()-1] end
      group by block_id, owner, segment_name, segment_type
      order by block_id

  • Can not dequeue JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE using DBMS_AQ

    I'm having a problem using DBMS_AQ package to dequeue a JMS message of type SYS.AQ$_JMS_TEXT_MESSAGE that was put on the queue using Java JMS API.
    Both JMS header and payload return empty but if I do "select user_data" from the queue table, I can see the message.
    Appreciate any helps or tips.
    Kim

    This has been asked a lot of times - I'm not sure how my initial searching missed all of the other questions/answers related to this topic.
    In our case, the solution was to:
    1) Leave the queue as a sys.aq$_jms_text_message type
    2) Construct a sys.xmltype object with our desired payload
    3) Do a getStringVal() on the xmltype object and use that string as the payload for our queue message
    - Nathan

  • Hi, I am using HP11 and iPlanet web server. When trying to upload files over HTTP using FORM ENCTYPE="multipart/form-data" that are bigger than a few Kilobytes i get a 408 error. (client timeout).

    Hi, I am using HP11 and iPlanet web server. When trying to upload files over HTTP using FORM ENCTYPE="multipart/form-data" that are bigger than a few Kilobytes i get a 408 error. (client timeout). It is as if the server has decided that the client has timed out during the file upload. The default setting is 30 seconds for AcceptTimeout in the magnus.conf file. This should be ample to get the file across, even increasing this to 2 minutes just produces the same error after 2 minutes. Any help appreciated. Apologies if this is not the correct forum for this, I couldn't see one for iPlanet and Web, many thanks, Kieran.

    Hi,
    You didnt mention which version of IWS. follow these steps.
    (1)Goto Web Server Administration Server, select the server you want to manage.
    (2)Select Preference >> Perfomance Tuning.
    (3)set HTTP Persistent Connection Timeout to your choice (eg 180 sec for three minutes)
    (4) Apply changes and restart the server.
    *Setting the timeout to a lower value, however, may    prevent the transfer of large files as timeout does not refer to the time that the connection has been idle. For example, if you are using a 2400 baud modem, and the request timeout is set to 180 seconds, then the maximum file size that can be transferred before   the connection is closed is 432000 bits (2400 multiplied by 180)
    Regards
    T.Raghulan
    [email protected]

  • Can i use same Server for server side and client??

    Hi,
    i m developing webservices in java and using two different server for server side and client.
    e.g. i m using one tomcat server on a machine to run webservice and again using one more tomcat server on client side at different machine.
    and hence it need two tomcat server.
    But i want only one server to run webservice and client.
    So please help me out...
    Thanks

    Hi,
    It is always recommended to maintain different servers
    REgards,
    Ravi.

  • We were using SP3 for iplanet server. Now we want to use SP4.

    We were using SP3 for iplanet server. Now we want to use SP4.
    When we deploy the EAR on SP4(thru IASDEPLOY), its giving Null pointer
    error but at the end it says deployment complete. Also there are no proper
    entries in the registry.
    If we deploy the same EAR on SP3, then everything is fine.
    In SP4, we are not getting even the EAR folder in APPS.

    What is this application all about.
    May be your ear file has some external dependancy, Can you send the logs for this.
    Since it is not deployed, the ear folder is not being created for you.
    Thanks,
    Rakesh.

  • Which mail client do I use with iCal server?

    I will soon have os x server, and I want to use iCal server with mail. I want to schedule meetings, etc., like Exchange. However, many people have Outlook. Some have Entourage. Will these clients with with iCal for scheduling meetings and if not which client can I use? Thank you.

    Which Platform are the clients?
    Apple Mail does not work directly with iCal server. The Leopard version of iCal is what is used for scheduling. Mail is not like Outlook on PC or Entourage on the Mac where email, calendering and contacts are in one application. Leopard uses Mail, iCal, Address Book to provide similar functions.
    Also check out this doc
    http://images.apple.com/server/macosx/docs/iCalService_Admin_v10.5_2ndEd.pdf
    Tells you all the 3rd Party client apps that work with iCal Server.

  • Scale out file server client access point using public nic

    Thoughts on this one.
    I have a Scale Out File Server cluster with a Client Access Point. Whenever i talk to the Client Access Point it uses the public nics.
    If i talk to the Scale Out File Server directly it uses the private like i want it to. How can i get the Client Access Point using the private nics?

    Hi JustusIV,
    Could you tell us why you want to modify the CAP use the “private” network, the CAP is used for client access, your clients may can’t access your cluster if modify your CAP
    use private network, if you want know how to modify the CAP of a cluster you can refer the following KB:
    Modify Network Settings for a Failover Cluster
    http://technet.microsoft.com/en-us/library/cc725775.aspx
    More information:
    Understanding Access Points (Names and IP Addresses) in a Failover Cluster
    http://technet.microsoft.com/en-us/library/cc732536.aspx
    Windows Server 2008 Failover Clusters: Networking (Part 4)
    http://blogs.technet.com/b/askcore/archive/2010/04/15/windows-server-2008-failover-clusters-networking-part-4.aspx
    Hope this helps.
    We
    are trying to better understand customer views on social support experience, so your participation in this
    interview project would be greatly appreciated if you have time.
    Thanks for helping make community forums a great place.

  • OS X.4 Clients didn't update it's date & time when using OS X.5 NTP Server

    Yesterday, I posted the problem we are having with the X.4 Clients that do not update their time & Date from the X.5 Leopard Server. We just installed and setup the file sharing part of our Mac OS X Server 10.5 Leopard on a PowerMac G5 and is working fine so far. Now I'm trying to setup the clients to synchronize their time with the server. I followed the instructions in the Network Services Admin paper, including the Enable Network Time Server (NTP) in the General Tab of the Server Admin program and pointing the clients to the network ip address of the server. It doesn't work. Yesterday, I thought that it was because i tried to do it after the start up and they were already synchronized, but today after a cold start today, still nothing happened. Probably it's because the server is not connected to the internet and we are updating the time on the server manually, it is connected to the LAN using a fixed IP Address entered manually. This work for the File Sharing but apparently not for NTP. It is a problem for us cause we have time dependent applications running. Any help will be greatly appreciatted.
    Thanks.

    Mike -
    See this:
    http://discussions.apple.com/thread.jspa?messageID=6712727#6712727

  • BusinessObjects Enterprise Client Tools XI 3.1 SP3 Connection Error

    Hello everybody,
    I installed BusinessObjects Enterprise XI 3.1 SP3 on the server, the server has Windows Server Enterprise 2007.
    Locally, in my Laptop, I installed the BusinessObjects Enterprise Client Tools XI 3.1 SP3, but i can´t connect with the CMS using the Webi, or anyother tool to the server. I made everything that is in the administrator, installation and configuration guides, but reading the administrator guide for Query as a WebService I read that if you install the BusinessObjects Enterprise Tools you need a key license to us it, the question will be this.
    Do i need a different license than the one what i use to install the BusinessObjects Enterprise on the server to install, connect and use the BusinessObjects Enterprise Client Tools XI 3.1 SP3 on every machine that i install and use for it????
    Thanks and regards.

    You do not need separate or additional license for the Client Tools.
    Most often Client tools cannot connect to server components because :
    1. CMS server is not running on the server
    2. There is a firewall between Client machine and the server machine and firewall specific settings were not done. (Admin guide - working with firewalls section).

  • Can we use different Databases (Oracle & SQL Server) in one report?

    Post Author: venki5star
    CA Forum: .NET
    Hi there.
    Can we use different databases (Oracle & SQL Server) in a same report?
    If possible how?
    Another question,
    Can we change the Provider Name at runtime of the given report. If so the above question is useless...
    Thanks in Advance.

    I tried this using Oracle Provider for OLEDB (the one that supplied by Oracle Client) and Crystal Reports 9. you can drag the column into designer but the image does not appear in preview.
    I guess it's because CR does not recognized it as image, and there are no information that the blob data is an image at all.

  • Can port 25 be used for SSL-enable SMTP server ?

    Hi,
    Our customer is using port 25 for a SSL-enabled SMTP server without certificate. When our email client tried to connect to it, the following exception thrown:
    DEBUG SMTP: exception reading response: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    Since we don't want to ask our customer to change their port configuration unless absolutely necessary, we did some tests with our own SSL-enabled SMTP server that uses certificate. Here is what I got:
    1) with port 25, got the same exception as above;
    2) with port 465, worked fine;
    3) with any other randomly pick up valid port, worked fine.
    This made me wonder if 25 is for non SSL SMTP server ONLY. By the way, I'm using Javamail 1.3.4 and JSDK 1.4.2_02. My question is whether we can configure javamail so that port 25 can be used by SSL-enabled SMTP server?
    Your help will be appreciated.

    Yes, port 25 is intended for non-SSL servers only, although that doesn't
    prevent a client from making a plain text connection and then using the
    STARTTLS command to switch the connection to SSL/TLS. JavaMail 1.4
    supports that usage.
    You can configure JavaMail to use port 25 for SSL connections if you
    really want to. JavaMail 1.3.x requires you configure an appropriate
    socket factory to get SSL connections; you can configure whatever port
    you want for use with that socket factory.

  • Solaris nis client can't connect to Windows 2008 NIS Server across subnets

    I have been using Microsoft Windows Server for NIS for years to centralize some accounts accessing Solaris and Linux OS.
    Windows 2003 R2 Indentity Management for UNIX version of Server for NIS was last working version with Solairs.
    After upgrading Domain to Windows 2008 all Solaris clients that are on different subnets fail to bind and connect to NIS servers now.
    These servers already were setup using ypinit -c to manually add the NIS servers to connect to and prior to Windows 2008 this worked.
    Now no Solaris nis clients on different subnets (no firewall between) can connect , but other Unix/Linux OS connect fine.
    Is this a known issue and can we get a resolution as it seems only Solaris is affected?

    Hi Mid.Hudson-IT,
    Before we begin ,we should ensure we have configured the printer server correctly .
    Here is a link for reference of configuring the printer server .
    Print server role: Configuring a print server
    https://technet.microsoft.com/en-us/library/cc775791(v=ws.10).aspx
    "I can map all of the printers on the network to the print server as-well as install the drivers correctly and I can resolve the IP and server name via DNS"
    From this sentence ,I can`t figure out whether you have tried to ping the server both with the IP adress and name adress from the client ?
    If we can ping the print server from the client,we can ensure the connection to the printer server is good .
    Then we can try to install the printer driver directly to have a check .In the adress bar of Windows Explorer ,input "\\server name \the printer name"
    If we cannot ping the print server ,we should troubleshoot the network issue firstly.
    We also can check the event viewer for more information to troubleshoot this issue .
    Best regards

  • (new?) performance problem using jDriver after a Sql Server 6.5 to 2000 conversion

    Hi,
    This is similar - yet different - to a few of the old postings about performance
    problems with using jdbc drivers against Sql Server 7 & 2000.
    Here's the situation:
    I am running a standalone java application on a Solaris box using BEA's jdbc driver
    to connect to a Sql Server database on another network. The application retrieves
    data from the database through joins on several tables for approximately 40,000
    unique ids. It then processes all of this data and produces a file. We tuned
    the app so that the execution time for a single run through the application was
    24 minutes running against Sql Server 6.5 with BEA's jdbc driver. After performing
    a DBMS conversion to upgrade it to Sql Server 2000 I switched the jDriver to the
    Sql Server 2000 version. I ran the app and got an alarming execution time of
    5hrs 32 min. After some research, I found the problem with unicode and nvarchar/varchar
    and set the "useVarChars" property to "true" on the driver. The execution time
    for a single run through the application is now 56 minutes.
    56 minutes compared to 5 1/2 hrs is an amazing improvement. However, it is still
    over twice the execution time that I was seeing against the 6.5 database. Theoretically,
    I should be able to switch out my jdbc driver and the DBMS conversion should be
    invisible to my application. That would also mean that I should be seeing the
    same execution times with both versions of the DBMS. Has anybody else seen a
    simlar situation? Are there any other settings or fixes that I can put into place
    to get my performance back down to what I was seeing with 6.5? I would rather
    not have to go through and perform another round of performance tuning after having
    already done this when the app was originally built.
    thanks,
    mike

    Mike wrote:
    Joe,
    This was actually my next step. I replaced the BEA driver with
    the MS driver and let it run through with out making any
    configuration changes, just to see what happened. I got an
    execution time of about 7 1/2 hrs (which was shocking). So,
    (comparing apples to apples) while leaving the default unicode
    property on, BEA ran faster than MS, 5 1/2 hrs to 7 1/2 hrs.
    I then set the 'SendStringParametersAsUnicode' to 'false' on the
    MS driver and ran another test. This time the application
    executed in just over 24 minutes. The actual runtime was 24 min
    16 sec, which is still ever so slightly above the actual runtime
    against SS 6.5 which was 23 min 35 sec, but is twice as fast as the
    56 minutes that BEA's driver was giving me.
    I think that this is very interesting. I checked to make sure that
    there were no outside factors that may have been influencing the
    runtimes in either case, and there were none. Just to make sure,
    I ran each driver again and got the same results. It sounds like
    there are no known issues regarding this?
    We have people looking into things on the DBMS side and I'm still
    looking into things on my end, but so far none of us have found
    anything. We'd like to continue using BEA's driver for the
    support and the fact that we use Weblogic Server for all of our
    online applications, but this new data might mean that I have to
    switch drivers for this particular application.Thanks. No, there is no known issue, and if you put a packet sniffer
    between the client and DBMS, you will probably not see any appreciable
    difference in the content of the SQL sent be either driver. My suspicion is
    that it involves the historical backward compatibility built in to the DBMS.
    It must still handle several iterations of older applications, speaking obsolete
    versions of the DBMS protocol, and expecting different DBMS behavior!
    Our driver presents itself as a SQL7-level application, and may well be treated
    differently than a newer one. This may include different query processing.
    Because our driver is deprecated, it is unlikely that it will be changed in
    future. We will certainly support you using the MS driver, and if you look
    in the MS JDBC newsgroup, you'll see more answers from BEA folks than
    from MS people!
    Joe
    >
    >
    Mike
    The next test you should do, to isolate the issue, is to try another
    JDBC driver.
    MS provides a type-4 driver now, for free. If it is significantly faster,
    it would be
    interesting. However, it would still not isolate the problem, because
    we still would
    need to know what query plan is created by the DBMS, and why.
    Joe Weinstein at BEA
    PS: I can only tell you that our driver has not changed in it's semantic
    function.
    It essentially send SQL to the DBMS. It doesn't alter it.

  • Problem using DG4ODBC with named SQL Server instance

    I am running DG4ODBC on a 64 bit LINUX machine with the Microsoft SQL Server driver installed. I have successfully tested this with a SQL Server instance that was not named (GENERALI_DSN).The named instance gives the following when trying to query:
    ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
    [unixODBC][Microsoft][SQL Server Native Client 11.0]Login timeout expired {HYT00}[unixODBC][Microsoft][SQL Server Native Client 11.0]SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF].  {08001,NativeErr = -1}[unixODBC][Microsoft][SQL Server Native Client 11.0]A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online. {08001,NativeErr = -1}
    ORA-02063: preceding 2 lines from DEVMISC
    odbc.ini
    [GENERALI_DSN]
    Driver                  = SQL Server Native Client 11.0
    Server                  = CLTDMJCWBYZ.eu.scor.local
    User                    = everest
    Password                = everest
    Database                = Everest_Generali
    [DEVMISC_DSN]
    Driver                  = SQL Server Native Client 11.0
    Server                  = [USVCLTDEVSQL02\DEVMISC]
    User                    = link_user
    Password                = password1
    Database                = DBA
    initDG4ODBC2.ora
    # HS init parameters
    HS_FDS_CONNECT_INFO = DEVMISC_DSN
    HS_FDS_TRACE_LEVEL = DEBUG
    HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so
    # ODBC specific environment variables
    set ODBCINI=/home/oracle/.odbc.ini
    listener.ora
    SID_LIST_LISTENER_GW =
       (SID_LIST =
          (SID_DESC =
           (SID_NAME=DG4ODBC)
          (ORACLE_HOME=/home/oracle/product/11.2.0)
          (ENV=LD_LIBRARY_PATH=/usr/lib64:/home/oracle/product/11.2.0/lib:/opt/micro
    soft/sqlncli/lib)
          (PROGRAM=dg4odbc)
          (SID_DESC =
           (SID_NAME=DG4ODBC2)
          (ORACLE_HOME=/home/oracle/product/11.2.0)
          (ENVS=LD_LIBRARY_PATH=/usr/lib64:/home/oracle/product/11.2.0/lib:/opt/micr
    osoft/sqlncli/lib)
          (PROGRAM=dg4odbc)
    LISTENER_GW =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = usvcltprdoragw)(PORT = 1521))
    tnsnames.ora
    DG4ODBC =
       (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcp)(HOST=usvcltprdoragw)(PORT=1521))
          (CONNECT_DATA=(SID=DG4ODBC))
          (HS=OK)
    DG4ODBC2 =
       (DESCRIPTION=
          (ADDRESS=(PROTOCOL=tcp)(HOST=usvcltprdoragw)(PORT=1521))
          (CONNECT_DATA=(SID=DG4ODBC2))
          (HS=OK)
    I can't figure out why the named instance does not work but the other one does. Any help would be greatly appreciated!

    Did you check with the ODBC test utility isql (it is installed by default when you install the unixODBC Driver manager) if your ODBC driver can connect at all to that named instance? I have some doubts that it will work either as there was a blog commented by a MS engineer:
    Introducing the new Microsoft ODBC Drivers for SQL Server - Microsoft SQLNCli team blog - Site Home - MSDN Blogs
    who states that named instance connections are not supported using that driver.
    - Klaus

Maybe you are looking for