2

I would like to test a process in Tibco Designer, that starts with a JMS Topic Subscriber. I would invoke that process and then call a JMS Topic Publisher. The problem is that the Call Process activity cannot invoke a process that starts with a JMS Topic Subscriber.

Is there something similar for what I want to achieve?

I know it's possible to load and start two different processes, but I was looking for a more automated solution. So that if I start one process, this will take care and start everything else.

Adrian Ber
  • 20,474
  • 12
  • 67
  • 117
  • Can you please tell what is that you wanted to achieve? – Rao Jul 05 '16 at 14:50
  • Exactly what I said - create a process that will be used to test another process that starts with a JMS Topic Subscriber. – Adrian Ber Jul 05 '16 at 19:31
  • Could you provide us the JMS connection information and the configuration of the "JMS topic subscriber" activity (in the target process) and the "JMS topic publisher" (in the source/test process). You have to make sure you have the same connection and have configured the right topic (both side). Check your selectors if you have. – Greg Jeanmart Jul 06 '16 at 08:12
  • Yes, I use the same connection on both. The problem is that I cannot start the process starting with the subscriber from another process. – Adrian Ber Jul 06 '16 at 10:04

2 Answers2

4

So, if you want to test a Process "Starter" (JMS Topic subscriber), you need to create test process with push a message in the topic.

For example, my main process is JMS Topic Subscriber process stater, indeed, as you mentioned, this process cannot be called as a sub-process because it's a process starter. I'm listening on TOPIC_TEST

enter image description here

Then, if you want to test this process, you can create a test process which push a message in the topic TOPIC_TEST

enter image description here

Now you can run Test_MyProcess for testing MyProcess

Greg Jeanmart
  • 666
  • 1
  • 5
  • 13
  • Let's say that the main process (the JMS Topic Subscriber process stater) throws an error. How can I catch it in the test process? I want to simulate an error to have different test cases. – Adrian Ber Jul 07 '16 at 07:09
  • 1
    Hello, It makes no sens to raise an exception from a "JMS Topic subscriber" process to a test process. because by definition, a JMS communication is asynchronous. The test process will continue the execution just after pushing the message in the topic. It doesn't expect any response. JMS is usually one way, one request without response. If you want to develop a synchronous service, I advice to use WebService (SOAP or REST). – Greg Jeanmart Jul 09 '16 at 12:14
1

In BW 2.*/5.*you MUST decide upfront if your (singular) Start activity is a plain process starter (to which you can pass an XML parameter) or y special process starter like JMS Subscriber, Timer, or alike (marked with a green circle in the palettes). Once you drag any of these into your process you convert this process from (default) plain process (which only be called from another process or designer tester) into a special process which then can be called by the corresponding start condition, e.g., a JMS topic subscriber need a matching JMS topic message to start even in designer.

If you want a "basic process" to have two or more starters you have to separate the starters and the basic process (having min. 3 processes in total) and have the basic process called in any of the starters (obvious design). If you want to "pass back" results or errors you can do it the same way (or any other inter-process communication using notifications, additional messaging, DB tokens ...). Please thinks "design-first" to outline your process structure rather than "plain-coding style" (bad design anyway) by "what-can-I do-next". Re-arranging process layers is awkward, cumbersome and highly error-prone. That's why you have to carry your brain 7x24 ...

Stefan Haas
  • 136
  • 4