Is JMS my solution???

Hi all,
I'm making an app that call to varios web services. This call is synchronous, and i have to wait to all responses. I can wait more than 50 secons, becouse the process is
Make one call---> getResponse--> MakeAnotherCall ---> getResponse and so on
I would like to do all the calls at the same time, AFAIK asynchornoulsy, and then get at some time later, the response.
Is this posible with JMS??
any ideas???

1) You could use JMS ....
Yes, maybe it will cost a lot.Maybe. That also depends on which app/jms server you are using or going to use. Maybe you could look for a solution in the open source world but I'm not sure how stable the open source JMS servers are as of today. I am sure that they will get better with time though. Of course, you are still going to have to face the implementation costs (including converting the remote servers to support the JMS interface).
maybe easier, but it should be multi-thread, and if we
have to make a lo of calls, the system should be
overheaded.Well, that depends on how you send the requests over HTTP. You could structure your client and server so that instead of having one thread per server waiting for the response, you could have a single thread per client request and have that thread poll for the responses. I don't know if I'm explaining this clearly. Let me know if it doesn't make sense.
Ufff. Now I'm thinking that our desing decision was
wrong.Well, I don't think that it's necessarily wrong. I think that you just need to find a way to run your requests to the remote servers in parallel. That should not be too complicated if you control the code/interfaces on the servers too.
User can't wait all the time, so i need that all the
calls were executed at the same time. That makes sense. Making the requests to the remote servers in parallel is obviously the way to go since a request to one remote server is independant from the responses received from the other remote servers.
Maybe it was a better desing decision that we collect
the information in opur database and genereta the jsp
page from hear.That would certainly be much faster but then again, it depends on your requirements (how often the data needs to be updated, how much data there is, etc...).
I hope that you can sort it out. Don't give up, I'm sure that the solution is right around the corner! :)

Similar Messages

  • Is JMS the solution for me?

    I don't know very much about JMS so I would like to ask everyone whether I am on the right track.
    The application I am trying to build is a multiple client/single server app.
    The communication between the client and the server (going both ways) needs to be as close to real time as possible, and the messages from the server will be going to all of the clients at the same time.
    I can't have the server create a message list and the clients read it when they want.
    I would also like to be able to pass objects back and forth.
    Is JMS the solution for me.
    If not can someone recommend something better.
    Thanks

    Any type of communication can be close to real time whether you use sockets, RMI, CORBA, SOAP and JMS.
    I would expect JMS to be slower than other techniques since it utilizes a middle layer, which others may not need. and SOAP which uses a verbose XML protocol.
    The distinct advantage of JMS in your scenario is that you can broadcast your message to multiple clients very easily using the publish/subscribe method.
    The disadvantage perhjaps is the reverse client to server communication. It is completely workable but will be less real-time than other solutions. The others solutions are are really geared towards client communicating to the server. JMS is geared to the server publishing to the client.
    Im not sure what you want. If your client to server communication is simply to request different messages then JMS is the way to go. You can use message filters, called selectors. and that is very standard JMS.
    If it is some other request, then it will be more complicated.
    GLuck

  • Is JMS based solution the right one?

    Hello,
    I'm doing some research on possible solutions to a process that is currently being completed semi manually and semi automated. The process itself consists of feeding several thousand ID numbers to a legacy C++ application, which in turn, after some processing of its own, sends more data to an external system. It is automated in that there is a batch file that kicks off the C++ application. The C++ application opens up a text file, reads an ID number and then processes it. It repeats this for as many IDs as there are in the text file. However, it is manual in that there are several text files, broken up into 500 IDs per file (which we create), that are sent over several weeks. The reason for this is a limitation in the external system that we have no control over. Its 500 IDs per day, no questions asked. Because of this limitation, we have to go in and run the batch file for each of those text files. In addition, we have to monitor as each text file is processed in case of a failure. If a failure occurs, we have to go into the text file, delete all of the IDs that were successfully processed, and then run the batch process again.
    At any rate, as much as we would like to, we are unable to rip the current system out and replace it all together. The legacy C++ component must remain intact. I am looking at possibly modifying the C++ application to pick up the ID numbers from an external application--instead of a text file--that keeps count of the number of IDs processed in a given day. I'd like to continue logging error messages, but instead of crapping out the entire process, I'd like for them to be ignored and for the process to continue until the 500 ID threshhold is reached for the day. I'm not too familiar with JMS technology, but from what I have read a JMS based external application may be a good candidate, but I'm thinking it may be overkill. I do like the fact that it is reliable, loosely coupled, and it's asynchronous. So I guess my question is if a JMS based application is the right solution for this problem? Or is it overkill?
    Thanks in advance for the assistance.

    hi java esse,
    i think you can acomplish your goals through using JMS.
    BUT if you just do this "simple" task with it i would not do it since it takes some time to get used to handling the JMS servers etc.
    if you consider your actual refactoring just as a starting point for many applications, and more to come this use case could be a good one.
    in general my only technical fear for this scenario would be that you might store some messages a reallly really long time maybe some weeks since your limit is 500 / day. this might be a porblem when you put some other applications on the JMS broker that have really high throughput.
    is it 500 successfull a day or 500 tries a day?
    regards chris

  • Is JMS based solution is suitable for the following:

    I an new to JMS. Im familiar with its basics (in theory and ran very simple examples).
    I was wondering if a clients server clients system, exchanging text messages and images is suitable for JMS or should I use a non J2EE component. The system should be able to serve about 100 users at the same time with a logic of whom should get certain messages.
    Thanks.

    The main question is number 1; for massive files (over 10-20Mb) you don't want to use 1 message per file; you either need to split it yourself into multiple messages or use some JMS Stream helpers like ActiveMQ has...
    http://activemq.org/JMS+Streams
    Decent JMS providers can handle massive load & high performance, federated networks, load balancing and reliability as well as things like throttling, flow control and so forth along with added features like JMX monitoring of queue depths & throughput rates so questions 2 and 3 can be supported whatever those numbers are - assuming you've got a decent provider and enough hardware :).
    For question 4; you've the option in JMS to choose your quality of service; whether to use persistence or not or to use queues or topics etc.
    I'd maybe make the questions
    1. How big are your images
    2. Do you need point to point or publish/subscribe?
    Though as Steve suggests its always worth testing that your load can be handled correctly by your middleware technologies & hardware.
    James
    http://logicblaze.com/

  • Which external JMS server/solution to choose?

    Hi
    We are contemplating getting an external JMS server and would like to know which one to go for. Does anyone have any suggestions?
    Br Mikael

    its completely depend on Client, as a PI Consultat point view we can give suggestion to client on that same.
    Better to talk with JMS/MQ experts they will suggest you best JMS server which suits for your Landscape.
    if you want to know different options then google it.
    Regards,
    Raj

  • Quartz Vs JMS ?

    Hi All,
    I like to know the differences between Quartz Job Scheduler and JMS (Java Message Service). Quartz is lacking some features which is there in JMS (such as queuing,dis-allowing of concurrent execution of jobs). When to go for Quartz Job Scheduler rather than using JMS Technology.
    I like to use any one scheduler in my program. I like to know your suggestions and comments on this.
    Is any othere third party open source is available to achieve the scheduling - queuing, dis-allowing concurrent execution - the number of jobs scheduled may be more than 300 or 500 .
    Thanks,
    J.Kathir

    I like to know the differences between
    es between Quartz Job Scheduler and JMS (Java Message
    Service). Quartz is lacking some features which is
    there in JMS (such as queuing,dis-allowing of
    concurrent execution of jobs). When to go for Quartz
    Job Scheduler rather than using JMS Technology.If the purpose is to only schedule the jobs, Quartz should go well. If you really have constraints like preventing concurrent execution of jobs, you should think of having a JMS based solution.
    A Google search brings up this link.
    http://www.redwood.com/information/java_scheduler.htm

  • 903 Security and JMS help

    Hello,
    We have a requirement to get a JMS/MDB solution working on our servers. Basically, we have one server running a JMS topic that several other servers with MDBs listen on. This much we were able to get working with help of some OTN people. Thanks!
    Two problems still remain. One, We won't go to 904 until 904 is in production. Plus, the upgrade testing and such may delay the upgrade to 904 past its release date. We only need a memory based non persistent solution, thus using AQ would be overkill. So we are simply using the 903 memory based JMS implementation.
    Secondly, and more importantly, the only way we seem to be able to get a Topic Connection factory is by using the admin/password id that you establish when you first install OC4J.
    Any pointers on how I can change this so I am not deploying the server's admin id and password? I am not very well versed in the security aspects of this server. Alot of people seem to be. What resources should I look at?
    Thank you for your help
    Matt

    thank you for the information.
    So does that mean there is no way to set the extended form rights and the signature rights?  Or is there something I can do to change the rights on the pdf?
    thanks again
    Nick

  • Problems processing a large batch of data within a Weblogic 5.1 cluster

    I have about exhausted my sources of information on this, so I ask the
              experts:
              The project I am involved with is attempting to build a scheduled
              process on a 5.1 cluster which will retrieve hundreds to thousands of
              database rows from a small group of Oracle tables and then submit them
              into a legacy system for processing. The problems we face are:
              1. We cannot have duplicate data submitted from startup classes on
              different servers in the cluster
              2. We need the process to run if even only one machine in the cluster is
              available and therefore do not want to tie the process to a single
              machine
              3. We would prefer to distribute the workload across all servers
              currently available in the cluster, but this is not mandatory.
              One solution is to retrieve each record as an Entity bean, attempting to
              update it to "in process" and rejecting any failures thus utilizing
              database locking, but due to the large number of records being processed
              this is much too resource intensive as well as time consuming.
              We have looked into JMS based solutions, but it appears that JMS under
              5.1 is tied to a specific server (failing case 2).
              One acceptable approach that we have yet to find a way of implementing
              is to have a "singleton" session bean, only one of which exists on the
              cluster (though it may exist anywhere on the cluster). I have run
              across a number of other applications for just this sort of EJB, but is
              it possible to implement?
              Sadly, Weblogic 6.0 cannot be part of the solution as our company will
              not be adopting it until well after this project's delivery date.
              Are we missing something obvious?
              Many thanks!
              -Steve
              

    You have to have all the servers in the cluster polling for work out of the
              database. Use the database as a scheduling / routing mechanism. Use timers
              on each server in the cluster to kick off a "find me one thing to do"
              process every n minutes or seconds.
              Peace,
              Cameron Purdy
              Tangosol, Inc.
              http://www.tangosol.com
              +1.617.623.5782
              WebLogic Consulting Available
              "Steven Wicklund" <[email protected]> wrote in message
              news:[email protected]...
              > I have about exhausted my sources of information on this, so I ask the
              > experts:
              > The project I am involved with is attempting to build a scheduled
              > process on a 5.1 cluster which will retrieve hundreds to thousands of
              > database rows from a small group of Oracle tables and then submit them
              > into a legacy system for processing. The problems we face are:
              > 1. We cannot have duplicate data submitted from startup classes on
              > different servers in the cluster
              > 2. We need the process to run if even only one machine in the cluster is
              > available and therefore do not want to tie the process to a single
              > machine
              > 3. We would prefer to distribute the workload across all servers
              > currently available in the cluster, but this is not mandatory.
              >
              > One solution is to retrieve each record as an Entity bean, attempting to
              > update it to "in process" and rejecting any failures thus utilizing
              > database locking, but due to the large number of records being processed
              > this is much too resource intensive as well as time consuming.
              >
              > We have looked into JMS based solutions, but it appears that JMS under
              > 5.1 is tied to a specific server (failing case 2).
              >
              > One acceptable approach that we have yet to find a way of implementing
              > is to have a "singleton" session bean, only one of which exists on the
              > cluster (though it may exist anywhere on the cluster). I have run
              > across a number of other applications for just this sort of EJB, but is
              > it possible to implement?
              >
              > Sadly, Weblogic 6.0 cannot be part of the solution as our company will
              > not be adopting it until well after this project's delivery date.
              >
              > Are we missing something obvious?
              > Many thanks!
              > -Steve
              >
              

  • No Route to Host Exception when trying to connect to OpenMQ?

    Hi,
    I'm trying to connect to an OpenMQ server running on another machine with code like the following:
            com.sun.messaging.ConnectionFactory f = new com.sun.messaging.ConnectionFactory();
            String host = "192.168.181.181";
            int timeOut = 10 * 1000;
            boolean reachable = InetAddress.getByName(host).isReachable(timeOut);
            System.out.println("reachable=" + reachable);
            f.setProperty(ConnectionConfiguration.imqAddressList,             host );
            f.setProperty(ConnectionConfiguration.imqAddressListBehavior, "RANDOM");
            f.setProperty(ConnectionConfiguration.imqConsumerFlowLimit,   "10");
            f.setProperty(ConnectionConfiguration.imqReconnectEnabled,    "true");
            Connection myConnection = f.createConnection();This tells me that the machine is not reachable (via my print) and throws a NoRouteToHostException. My problem is that the machine is reachable. It responds to pings and I can use telnet to see the OpenMQ server is running:
    curt@ccox-u1:~$ telnet 192.168.181.181 7676
    Trying 192.168.181.181...
    Connected to 192.168.181.181.
    Escape character is '^]'.
    101 DEV_MQ_Cluster 4.2
    portmapper tcp PORTMAPPER 7676 [imqvarhome=/var/opt/sun/mq,brokerid=bossnode1,imqhome=/opt/sun/mq,sessionid=8595155628813678592]
    cluster_discovery tcp CLUSTER_DISCOVERY 32811
    jmxrmi rmi JMX 0 [url=service:jmx:rmi://foo.com/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc6AAtVbmljYXN0UmVmMgAADzE5Mi4xNjguMTgxLjE4MQAAgCwTQLe4tsgNM+WcbkQAAAEggVyr4oABAHg=]
    admin tcp ADMIN 32814
    jms tcp NORMAL 32813
    cluster tcp CLUSTER 32815
    Connection closed by foreign host.Can anyone tell me why this fails or give me some troubleshooting hints?
    Thanks,
    Curt
    PS -- Here's what I'm running:
    curt@ccox-u1:~$ java -version
    java version "1.6.0_10"
    Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
    Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode)
    curt@ccox-u1:~$ cat /proc/version
    Linux version 2.6.27-11-generic (buildd@vernadsky) (gcc version 4.3.2 (Ubuntu 4.3.2-1ubuntu11) ) #1 SMP Wed Apr 1 20:57:48 UTC 2009

    There are two problems here. The first is a firewall problem. Although the Open MQ port mapper running on port 7676 wasn't being blocked, the port that mq tcp port was. I was able to solve this by creating an ssh tunnel and specifying a mqtcp connection.
    "Table 18–2 Message Broker Addressing Schemes"
    http://docs.sun.com/app/docs/doc/820-4916/6ngbm6hp4?a=view#gbnnt
    f.setProperty(ConnectionConfiguration.imqAddressList,"mqtcp://" + host + ":32782/jms");This solution is less than ideal, since the mq tcp port can change. In fact, if you reference the original post, you can see it has already changed on me. I could write code to determine what the port is and create my own tunnel, but that doesn't seem worth the effort just yet.
    The second problem is the lack of helpful error message. It's the sort of problem where you can't really blame any one party too much. Open MQ and Java are both just reporting the error message that they are given by the operating system. They should do a bit more than that.

  • MDB rollback to Queues/Topics

    Can somebody explain the MDB rollback behaviour in Queues and Topics.
    My specific questions are:
    1) When a MDB, listening to a Queue, performs a rollback, does the message go back to the head of the queue (assumption is that the message should go back to the head of the queue)? Is this somewhere in the spec? Seems like different providers have different interpretations, all the JMS providers do not gurantee this behaviour.
    2) If we replace the queue with Topic, where does the message go on a rollback?
    3) Where does the message go when there are multiple subscribers to the Topic? Can the other subscribers that did consume the message successfully get the message again, if a subscriber performs a rollback?
    The JMS specification does not cover these situation very well, so we are left to the mercy of the JMS providers.
    4) Can somebody share the experience in this context, if we are trying to build a 'JMS agnostic' solution, how should we handle this rollback?
    Thanks

    1. Its dependent on the JMS provider. In ActiveMQ 4.x it is replayed to the consumer a number of times before being placed on the head of the queue - so ordering is maintained if the message is successfully processed by the same consumer.
    However ordering is often broken if the message is put back on the head of the queue if you have multiple consumers, since they compete for messages. Though if you have multiple consumers anyway, you often loose total ordering unless you use a technique like Exclusive Queues or Message Groups.
    2. Typically it'll be replayed to the same consumer again. Most JMS providers provide a way to customize the redelivery policy; how many times will it be redelivered before sending to a dead letter queue, what is the replay exponential back off time etc.
    3. Yes. Each topic subscriber gets their own copy of the message. It doesn't matter if one consumer does or does not process the message; other consumers are unaffected.
    4. I'd just retry the operation and rely on the MDB/JMS providers dead letter queue and you should be fine.
    BTW if ever you need a tool to browse the dead letter queues and maybe move messages from the dead letter queue back to the originating queue, you could try Hermes
    http://www.hermesjms.com/
    James
    http://logicblaze.com/

  • No route to openvpn server when using networkmanager and wireless

    Since some weeks I can not connect to openvpn networks via WIFI when using the networkmanager. Connecting manually there is no problem.
    When I connect my laptop via LAN (enp0s25) and establish an openvpn connection everything works as expected:
    [me@laptop ~]$ ip route show
    default via 10.101.2.173 dev tun0 proto static metric 1024
    10.101.2.173 dev tun0 proto kernel scope link src 10.101.2.174
    172.17.2.0/24 dev enp0s25 proto kernel scope link src 172.17.2.25
    172.17.2.0/24 dev enp0s25 proto kernel scope link src 172.17.2.25 metric 203
    xxx.xx.xx.xxx via 172.17.2.1 dev enp0s25 proto static metric 1
    When connecting to the internet via WIFI (wlp3s0) the VPN connection is established but there is no route to the VPN server:
    [me@laptop~]$ ip route show
    default via 10.101.2.173 dev tun0 proto static metric 1024
    10.101.2.173 dev tun0 proto kernel scope link src 10.101.2.174
    172.17.2.0/24 dev wlp3s0 proto kernel scope link src 172.17.2.38
    When I add the route manually everything works fine:
    ip route add xxx.xx.xx.xxx via 172.17.2.1 dev wlp3s0 proto static metric 1
    Any ideas?

    There are two problems here. The first is a firewall problem. Although the Open MQ port mapper running on port 7676 wasn't being blocked, the port that mq tcp port was. I was able to solve this by creating an ssh tunnel and specifying a mqtcp connection.
    "Table 18–2 Message Broker Addressing Schemes"
    http://docs.sun.com/app/docs/doc/820-4916/6ngbm6hp4?a=view#gbnnt
    f.setProperty(ConnectionConfiguration.imqAddressList,"mqtcp://" + host + ":32782/jms");This solution is less than ideal, since the mq tcp port can change. In fact, if you reference the original post, you can see it has already changed on me. I could write code to determine what the port is and create my own tunnel, but that doesn't seem worth the effort just yet.
    The second problem is the lack of helpful error message. It's the sort of problem where you can't really blame any one party too much. Open MQ and Java are both just reporting the error message that they are given by the operating system. They should do a bit more than that.

  • Solution to detect and discard duplicate JMS messages

    Hi All,
              I have a scenario where in I require this scenario:
              Even though JMS messages are sent twice OR multiple times from JMS producer,as for as consumers are concerned,the JMS consumer should be able to detect and discard the message.
              Can somebody tell me how to achive the same?
              Thanks,
              Prashanth Bhat.

    Funny - I was just talking to our product manager about exposing a "duplicate-elimination" feature in a future release. Anyhow, I think there are two solutions:
              (1) Use transactions on the producer side to guarantee it sends exactly-once. (Eg. The client uses the same tx to get its src message as it does to produce the messaage.) This is the standard solution - and, with batching, often turns out to be the highest performing solution (by far).
              (2) Modify the consumer to keep a history of received messages so that it can detect and discard duplicates. There's a white-paper on this topic here:
              High Performance Message Processing with BMT Message-Driven Beans and Spring
              http://dev2dev.bea.com/pub/a/2006/01/custom-mdb-processing.htm
              While the article specifically mentions "Spring", "Message-Driven Beans", and "BMT", the general concepts apply to any queuing system.
              Be sure to read through the comments. :)
              Tom

  • JMS Peformance - Win2k custom solution much faster help

    I have been running benchmark testing using WLAS 6.0 with a message of
    roughly
    380 bytes. This is one publisher publishing 75 msgs/sec to the WLAS and
    the WLAS has 90 subscribers and each subscriber averages 20/msgs/sec
    with a few selectors and 35 msgs/sec raw throughput.
    This gives overall raw throughput of around 3500 msgs/sec for the
    ES220. We have comptetion with a custom home grown microsoft solution
    who claim to get 7500 to 12000 filtered mgs / second.
    Anyone out there obtained higher benchmarks on WL JMS or any other JMS
    product.
    Please help I hate to lose to a MS centric product.

    Just wandered over from the weblogic.developer.interest.jms
    newsgroup. SMQs HTTP tunneling may not be up to snuff.
    I suggest you download both WLS 6.0 JMS and SMQ and
    benchmark the difference yourself.
    Plus keep in mind, some vendors (not BEA), do not guarantee
    pub/sub messages will get through -- they will drop non-persistent
    messages during congestion (this is allowed in the JMS spec.)
    I suggest you check for dropped messages in your tests.
    "Ivan N. Zhidov" wrote:
    I've seen SMQ benchmarks too but I'd want to see their performance over
    HTTP. Most if not all JMS vendors implement HTTP tunneling as a series of
    request-replies meaning pull disguised as push which impacts performance a
    lot. I've heard numbers from 2 to 8 times slower than a raw TCP socket.
    Cheers,
    Ivan
    Larry Presswood <[email protected]> wrote in message
    news:[email protected]...
    Yes QoS is a requirement. I have been looking at sonic MQ benchmarks andthey
    seem to have a good edge on the numbers i obtained from wlas and they area
    good bit cheaper for just jms.
    I think BEAS may need to license just jms if they dont already
    "Ivan N. Zhidov" wrote:
    I don't know your throuhput requirements but from what I know WL JMS is
    built on top of WL RMI (BEA folks can correct me if I'm wrong) thus it
    has
    some overhead. Also internet usually implies HTTP tunneling which canreduce
    the speed event further (~20-30%). Is QoS a requirement?
    Cheers,
    Ivan
    Larry Presswood <[email protected]> wrote in message
    news:[email protected]...
    The solution needs to be deployed over the internet. these guys thewin2k
    guys
    have some sort of user concentrator which then allows clients to pick
    up
    messages
    over http via a push and keep alive. I have seen Sonics and Firoanos
    benchmarks
    but the folks here seem to not be to interested in using another JMSproduct I
    am working on that.
    Thanks
    "Ivan N. Zhidov" wrote:
    Larry,
    I don't have a performance benchmark for WLS but I have seen results
    comparable to the ones you want with other JMS vendors such as
    Fiorano
    and
    Sonic. Is the application to be deployed over the LAN or the net?
    Cheers,
    Ivan
    Larry Presswood <[email protected]> wrote in message
    news:[email protected]...
    I have been running benchmark testing using WLAS 6.0 with a
    message of
    roughly
    380 bytes. This is one publisher publishing 75 msgs/sec to theWLAS
    and
    the WLAS has 90 subscribers and each subscriber averages
    20/msgs/sec
    with a few selectors and 35 msgs/sec raw throughput.
    This gives overall raw throughput of around 3500 msgs/sec for the
    ES220. We have comptetion with a custom home grown microsoftsolution
    who claim to get 7500 to 12000 filtered mgs / second.
    Anyone out there obtained higher benchmarks on WL JMS or any otherJMS
    product.
    Please help I hate to lose to a MS centric product.

  • Shared Disk solution for Transaction Logs and JMS?

              In a machine failure, two key resources for a clean recovery are the Transaction Logs
              and the JMS Store.
              The WebLogic Server Administration Guide discusses moving the Transaction Logs to
              a new machine before starting a failed WLS server on that machine in order to achieve
              a clean recovery.
              It suggests use of "a dual-ported disk available to both machines."
              I'm looking for such a solution.
              We currently use Veritas Cluster Server to manage our Database environment, but I
              am concerned it is too expensive or too comprehensive a solution for the size of
              the Transaction Logs and the complexity of the problem.
              Has anyone implemented a solution to achieve high availability of the Transaction
              Logs and JMS Store?
              Can you recommend solutions I should be looking into, in addition to Veritas?
              Thanks,
              Steve Tahmosh
              Sovereign Bank
              617 533-1258
              

    Sully,
    OK, I am just about as frustrated as I can get. I'm doing everything that you said, at least as far as I can tell, but all of my Windows machines (two XP, one Vista) are asking me for a username and password and then saying they can't connect.
    Any help would be appreciated.
    Mitch

  • JDBC connection pool failures when used by JMS stores

              We are using WebLogic 6.1 sp2. We defined a separate connection pool for use by
              a JMS Store.
              <JDBCConnectionPool Name="sybaseJMSPool"
              Targets="cluster00"
              InitialCapacity="2"
              MaxCapacity="10"
              DriverName="com.sybase.jdbc2.jdbc.SybDriver"
              Properties="[email protected]@;[email protected]@;charset=utf8"
              URL="jdbc:sybase:Tds:@jms.db.host@/@jms.db.name@"/>
              (note that the @xxx@ string are replaced by actual values).
              We are using Sybase Jconnect 5.5 to a Sybase ASE 12.5 database.
              We deployed this configuration on a number of environments (testing, staging,
              ..). The actual hardware and network configuration is different for the different
              system, but the WebLogic domain stays the same regarding this issue.
              On the test system we frequently get the following exceptions:
              <Aug 13, 2002 1:56:04 PM CEST> <Alert> <JMS> <www00-test> <node00>
              <ExecuteThread: '6' for queue: 'JMS.TimerClientPool'> <> <> <040048>
              <JMSServer "JMSServer00", store failure while writing message for topic
              OrderChangeTopic, java.io.IOException: JMS JDBC store, connection pool =
              <sybaseJMSPool>, prefix = <JMS00>: write failed
              java.sql.SQLException: JZ006: Caught IOException:
              com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
              closed.
              at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
              (ErrorMessage.java:715)
              at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
              at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
              at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
              at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
              (SybStatement.java:1625)
              at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
              (SybPreparedStatement.java:91)
              at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
              (P6LogPreparedStatement.java:179)
              at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              .>
              java.io.IOException: JMS JDBC store, connection pool = <sybaseJMSPool>, prefix
              = <JMS00>: write failed
              java.sql.SQLException: JZ006: Caught IOException:
              com.sybase.jdbc2.jdbc.SybConnectionDeadException: JZ0C0: Connection is already
              closed.
              at com.sybase.jdbc2.jdbc.ErrorMessage.raiseErrorCheckDead
              (ErrorMessage.java:715)
              at com.sybase.jdbc2.tds.Tds.handleIOE(Tds.java:3124)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1412)
              at com.sybase.jdbc2.tds.Tds.cancel(Tds.java:1341)
              at com.sybase.jdbc2.jdbc.SybStatement.doCancel(SybStatement.java:564)
              at com.sybase.jdbc2.jdbc.SybStatement.updateLoop(SybStatement.java:1672)
              at com.sybase.jdbc2.jdbc.SybStatement.executeUpdate
              (SybStatement.java:1625)
              at com.sybase.jdbc2.jdbc.SybPreparedStatement.executeUpdate
              (SybPreparedStatement.java:91)
              at com.p6spy.engine.logging.P6LogPreparedStatement.executeUpdate
              (P6LogPreparedStatement.java:179)
              at weblogic.jdbc.pool.Statement.executeUpdate(Statement.java:293)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1246)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              at weblogic.jms.store.JDBCIOStream.throwIOException
              (JDBCIOStream.java:1213)
              at weblogic.jms.store.JDBCIOStream.write(JDBCIOStream.java:1256)
              at weblogic.jms.store.StoreRequest.doTheIO(StoreRequest.java:250)
              at weblogic.jms.store.JMSStore.execute(JMSStore.java:182)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
              Before that this message appeared:
              <Aug 13, 2002 11:31:16 AM CEST> <Error> <ConnectionManager> <www00-test>
              <node00> <ExecuteThread: '26' for queue: 'default'> <> <> <000000>
              <Closing: 'weblogic.rjvm.t3.T3JVMConnection@795af6' because of: 'Server
              received a message over an uninitialized connection: 'JVMMessage from: 'null'
              to: '-4555218188801970213S:192.168.13.1:[7001,7001,7002,7002,7001,7002,-
              1]:ADIS:node00' cmd: 'CMD_REQUEST', QOS: '101', responseId: '1',
              invokableId: '287', flags: 'JVMIDs Not Sent, TX Context Not Sent', abbrev
              offset: '34'''>
              This problem did not occur on another system which was used during a 2 day stress
              testing session.
              It seems that the problem occurs after a period in which no user request where
              made. The user requests trigger EJB's that start sending JMS messages.
              When the problem occurs, the JMS messaging systems seems to lock up as no messages
              are received anymore by the different listeners (MDBs).
              Undeploying and redeploying the JBDC connection pool solves the problem. This
              solution is unacceptable in case of a production system.
              A similarly defined connection pool, which is used by the EJBs to make database
              connection, does not manifest this problem.
              <JDBCConnectionPool Name="sybasePool"
              Targets="cluster00"
              InitialCapacity="10"
              CapacityIncrement="5"
              MaxCapacity="50"
              PreparedStatementCacheSize="150"
              DriverName="com.sybase.jdbc2.jdbc.SybDriver"
              Properties="[email protected]@;[email protected]@;JCONNECT_VERSION=6;charset=utf8"
              URL="jdbc:sybase:Tds:@db.host@/@db.name@"/>
              The JDBC connection pool is used as follows by the JDBC store
              <JMSJDBCStore ConnectionPool="sybaseJMSPool" Name="JDBCStore00" PrefixName="JMS00"/>
              <JMSServer Name="JMSServer00" Store="JDBCStore00" Targets="node00">
              <JMSTopic JNDIName="ADIS.JMSError" JNDINameReplicated="false" Name="ErrorTopic"/>
              <JMSTopic JNDIName="ADIS.Status"
              Name="StatusTopic" RedeliveryDelayOverride="300000"/>
              <JMSTopic JNDIName="ADIS.OrderChange" JNDINameReplicated="false"
              Name="OrderChangeTopic" RedeliveryLimit="3"/>
              </JMSServer>
              Turning on the "Test Reserved Connection" with a appropriate test table does not
              help.
              Some sources on the internet tell us that JZ0C0 errors in the Jconnect driver
              can be related to network problems. Nevertheless the connection pool should be
              able to cope with this.
              Can you provide any solution for this ? Or give us hints what can cause the problem
              

    Zhenhao Qi wrote:
    thanks! Joe.
    The SQL statement itself can no longer be simplified, the long excuation time is due to the database size and complicated Select criteria. I can easily reproduce the problem by using this SQL. I tried "BEA's Oracle driver (Type 4): Version 8.1.7,9.0.1,9.2.0". the question can be dissect into 2 pieces:
    1) why the jdbc connection (using oracle.jdbc.OracleDriver) won't return anything if the SQL execution time > 5min, that is probably the Oracle's problem
    2) why the occupied connection pool won't release even I set "Statementtimeout=600", this is Weblogic's problem.
    ZhenhaoHi. Yes, (1) is oracle's problem. (2) may also be. The JDBC spec has very few
    allowances for one thread to interrupt a second thread's JDBC call. If we
    transmit your timeout request by calling setQueryTimeout() on the oracle
    statement, and if you have a weblogic-controlled transaction we call
    Statement.cancel() on any ongoing statement, we end up relying on whether
    the Oracle driver implements and responds to those calls.
    Are you doing weblogic-controlled transactions? Are you/can you
    call Statement.setQueryTimeout() on your statements, or are these
    generated JDBC queries?
    If you can duplicate the problem using the weblogic.jdbc.oracle.OracleDriver
    we have some other debug avenues. This would be good even if you really
    want to use the thin driver, because we will do the same JDBC calls to
    either driver, and the debug would prove (if) we set up a query timeout
    and if we call cancel(). If we do, then we can know that it is the Oracle
    driver failing in these regards.
    Joe

Maybe you are looking for

  • Is ther a way to quickly delete whole albums in the music app in iOS 7?

    I often download new music and need to remove old music to make space.  I use Match, so I almost never sync with a computer these days, and even when I do I don't manage my music that way.  The music app in iOS 7 seems to have no way to delete albums

  • Can't "drag and drop" fields in Salesforce.

    I can no longer "drag and drop" fields in Salesforce. When I try, the entire set of fields highlights. I can get this feature to work with a clean install of let's say, Firefox, but within an hour or so, back to the same problem. Any thoughts out the

  • 2 NX with i

    I just got a new computer and am getting a SoundBlaster Audigy 2 NX with it. I am trying to figure out what's the best way to manage my iPod. I like the remote feature of the soundblaster, but I understand that iTunes doesn't work with the remote. An

  • Is there a way to listen to stuff from ipod touch besides the music on it through a windows pc?

    While I'm playing guitar I would like to be able to listen to other apps from my iPod besides the music I already have on it and can't use headphones because they are plugged into my guitar interface. So is there any software out there that would let

  • Having trouble wrapping query as subquery in order to sum a column

    I have a query whose first column in the "select" is something like "count(distinct t.id)", and the query has a "group by" for several columns. This generates a number of rows with a number in the first column representing the number of distinct id v