- From: Eric Johnson <eric@tibco.com>
- Date: Fri, 10 Oct 2008 13:33:33 -0700
- To: "SOAP/JMS (list)" <public-soap-jms@w3.org>
- Message-ID: <48EFBC1D.2090402@tibco.com>
Somehow, I managed to escape without a specific action item to update the URI spec, although I know I agreed to it. I have attached the HTML form of the edits, and will be submitting the text and XML forms on Monday, barring any comments, or any hold-up with Roland's attempts to contact Oracle. Before I submit, depending on what happens with Roland's efforts, we clearly have to update the list at the beginning that identifies BEA, as appropriate. -Eric. Eric Johnson wrote: > As per my action item #35: > http://www.w3.org/2002/ws/soapjms/tracker/actions/35 > > I'm attempting to update my proposal to deal with the following: > * Comments from "Alfred" sent to the authors listed on the > Internet-Draft (I-D) > * Subject of the action item - removing context, and addressing replyTo > in the context of queue & topic variants > > I propose the edits to the current draft of the URI scheme: > http://www.ietf.org/internet-drafts/draft-merrick-jms-uri-03.txt > > ----------------- > Section 1, last paragraph, revise to: > > While the "jndi" variant provides compatibility, vendors may define > additional variants. This specification defines three variants, "jndi", > "queue", and "topic". > > ----------------- > Section 3.3 > > Change: > jms-uri = "jms:" jms-variant ":" jms-dest > [ "?" param *( [ "&" param ] ) ] > > .. to .. > > jms-uri = "jms:" jms-variant ":" jms-dest > [ "?" param *( "&" param ) ] > > ----------------- > Section 4, 2nd paragraph, change: > > The two recognized variants (jms-variant above) are "jndi", and "context". > > .. to .. > > The three recognized variants (jms-variant above) are "jndi", "queue", > and "topic". > > ~~~~ > Also change the example: > > jms:context:SomeContextName?timeToLive=1000 > > .. to .. > > jms:queue:ExampleQueueName?timeToLive=1000 > > ---------------- > Section 4.1.3. > > Change: > > and corresponds to the JMS message header > "JMSPriority". > > .. to .. > > and corresponds to the JMS message header field > "JMSPriority". > > ---------------- > Section 4.3 & 4.3.1 --> REPLACE with the following: > > 4.3. Vendor Destination Names - Variants "queue" And "topic" > > The JMS Session object provides a means to directly access queues and > topics. Specifically, it has the methods Session.createQueue(String > name), and Session.createTopic(String name). These methods can be used > to "create" the Java representation of an existing JMS Topic or Queue. > > Since the Session interface requires external knowledge about whether a > given name relates to a queue or topic, rather than introducing one new > variant, this section defines two variants. A JMS URI can indicate > which of these methods to use by specifying the appropriate variant - > either "queue" or "topic". For example: > jms:queue:ExampleQueueName > > to identify a JMS queue Destination, and > jms:topic:ExampleTopicName > > to identify a JMS topic Destination. > > JMS only specifies one way to obtain the names used by these APIs. With > a JMS Queue or Topic available, an implementation can call > Queue.getQueueName(), or Topic.getTopicName(), respectively, both of > which return a String object. To create a correct corresponding URI, > the resulting string must use standard URI escape mechanisms so that the > resulting characters conform to "jms-dest". > > 4.3.1. Treatment of replyToName parameter > > When used with the "queue" and "topic" variants, the replyToName > parameter, specified in section 4.1.4, always refers to a name of a JMS > queue to look up via the Session.createQueue() method. For either > variant, if a JMS topic is instead required as a response destination, a > JMS URI can emply the "topicReplyName" parameter. This parameter > defines a name to look up with the Session.createTopic() method. > > A JMS URI MUST NOT specify both a "topicReplyName" and a "replyToName" > paramter. > > 4.3.2. Obtaining a Session via JNDI > > Using the Session.createQueue(), and Session.createTopic() methods > assumes that a client program has already obtained a Session object. > Where does that Session object come from - how does a client get it? > > One way to get a Session object is to simply revert to using JNDI. That > is, if a Session is not available to client from some other context, the > "queue" and "topic" variants MAY reuse the URL parameters specified in > section 4.2.1, JNDI Parameters. Via JNDI, those parameters will > identify a ConnectionFactory, which can then be used to obtain a Session > object. > > Combining the "queue" and "topic" variants with JNDI lookup for an > implementation of ConnectionFactory raises an important consideration > for JMS URI clients. Once clients are using JNDI for one part of > discovering a Destination, they almost certainly could use a > vendor-neutral JNDI lookup for a Destination object, rather than a > vendor-specific means. As a result, clients should carefully consider > alternatives to this approach. > > 4.3.3. Limitations of "queue" and "topic" > > The JMS specification clearly identifies the two methods on the Session > interface as returning vendor specific names for destinations. > Consequently, users of the JMS URI scheme should carefully consider when > these two variants should be applied. If users plan switching between > JMS vendors, they should also plan on regenerating resources that > contain URIs in this vendor specific form. > > A JMS vendor may provide alternate ways to obtain the names that can be > passed to Session.createQueue(), and Session.createTopic(). When using > those alternate means, users of this URI specification should verify > that the obtained names work as expected in all circumstances. > > ---------------- > Section 8.4 > > Replace the second paragraph of this section with: > > The "queue" and "topic" variants are subject to the same concerns as the > JNDI variant. In addition, because the destination names are vendor > defined, URIs employing these two variants may employ special characters > that significantly change the meaning of the URI. It is possible that > the introduction of a single character - difficult for a human to notice > - might dramatically change the intended meaning of a URI. In > situations where this might be an issue, users of this URI should > strongly consider the "jndi" variant instead. > > ---------------- > Section 9 > > Change: > o URI scheme name: "jms" is requested > o Status: Permanent is requested > > .. to .. > o URI scheme name: jms > o Status: Permanent > > as well as changing: > > o References See References section > > .. to .. > > o References: See References section > >
Attachments
- text/html attachment: draft-merrick-jms-uri-04.html
Received on Friday, 10 October 2008 20:35:32 UTC