<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Codedrop™ Weblog &#187; Tibco</title>
	<atom:link href="http://www.codedrop.ca/blog/archives/category/tibco/feed" rel="self" type="application/rss+xml" />
	<link>http://www.codedrop.ca/blog</link>
	<description>Drop'n some code and other tech tidbits...</description>
	<lastBuildDate>Mon, 26 Jul 2010 16:45:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to address TIBCO (Send HTTP Request) SSL Certificate Problems</title>
		<link>http://www.codedrop.ca/blog/archives/227</link>
		<comments>http://www.codedrop.ca/blog/archives/227#comments</comments>
		<pubDate>Fri, 28 May 2010 23:17:52 +0000</pubDate>
		<dc:creator>groll</dc:creator>
				<category><![CDATA[Tibco]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.codedrop.ca/blog/archives/227</guid>
		<description><![CDATA[Integrating a TIBCO service with a 3rd Party REST api utilizing the &#8220;Send HTTP Request&#8221; palette option and receiving the following error?..

iaik.security.ssl.SSLException: Server certificate rejected by ChainVerifier
at iaik.security.ssl.f.f(Unknown Source)
at iaik.security.ssl.f.d(Unknown Source)
at iaik.security.ssl.e.c(Unknown Source)
at iaik.security.ssl.SSLTransport.startHandshake(Unknown Source)
at iaik.security.ssl.SSLTransport.a(Unknown Source)
at iaik.security.ssl.SSLTransport.renegotiate(Unknown Source)
at iaik.security.ssl.SSLSocket.renegotiate(Unknown Source)
at com.tibco.security.ssl.super.O0OO.doHandshake(SSLClientImpl.java:322)
at ...

Normally I was able to use a browser to export each level of [...]]]></description>
			<content:encoded><![CDATA[<p>Integrating a TIBCO service with a 3rd Party REST api utilizing the &#8220;Send HTTP Request&#8221; palette option and receiving the following error?..<br />
<code><br />
<small><small><span style="color: #000099;">iaik.security.ssl.SSLException: Server certificate rejected by ChainVerifier<br />
at iaik.security.ssl.f.f(Unknown Source)<br />
at iaik.security.ssl.f.d(Unknown Source)<br />
at iaik.security.ssl.e.c(Unknown Source)<br />
at iaik.security.ssl.SSLTransport.startHandshake(Unknown Source)<br />
at iaik.security.ssl.SSLTransport.a(Unknown Source)<br />
at iaik.security.ssl.SSLTransport.renegotiate(Unknown Source)<br />
at iaik.security.ssl.SSLSocket.renegotiate(Unknown Source)<br />
at com.tibco.security.ssl.super.O0OO.doHandshake(SSLClientImpl.java:322)<br />
at ...</span><br />
</small></small></code><br />
Normally I was able to use a browser to export each level of the certificate hierarchy to the BW_GLOBAL_TRUSTED_CA_STORE and have everything function fine.  For some reason, the new integration didn&#8217;t present all required certification levels via the browser.  I think the underlying reason may have been the use of a self signed certificate in the certificate chain.<br />
<code><br />
<span style="color: #000099;">Verify return code: 19 (self signed certificate in certificate chain)</span><br />
</code><br />
To get around this, I was able to use the following openssl command to identify the required certs and manually copied and pasted each certification to a new file in the BW_GLOBAL_TRUSTED_CA_STORE.  After that, running the service through designer worked just fine.<br />
<code><br />
<span style="color: #000099;"> openssl s_client -showcerts -connect www.foobar.com:443</span><br />
</code></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=b57fe343-65b1-83cf-a86d-252f6655f847" alt="" /></div>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=How+to+address+TIBCO+%28Send+HTTP+Request%29+SSL+Certificate+Problems+http://e3ird.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.codedrop.ca/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=How+to+address+TIBCO+%28Send+HTTP+Request%29+SSL+Certificate+Problems+http://e3ird.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.codedrop.ca/blog/archives/227/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Main Problems with TIBCO Designer</title>
		<link>http://www.codedrop.ca/blog/archives/152</link>
		<comments>http://www.codedrop.ca/blog/archives/152#comments</comments>
		<pubDate>Mon, 23 Nov 2009 17:19:04 +0000</pubDate>
		<dc:creator>groll</dc:creator>
				<category><![CDATA[Tibco]]></category>

		<guid isPermaLink="false">http://www.codedrop.ca/blog/archives/152</guid>
		<description><![CDATA[After having utilizing TIBCO&#8217;s Designer product for a number of months, several blaring deficiencies come to mind.. .here&#8217;s a list of my top complaints.  I expect I&#8217;ll be adding to this list as I continue to discover new &#8216;features&#8217; within the product.

Unable to open 2 versions of the same project at the same time.  Unless [...]]]></description>
			<content:encoded><![CDATA[<p>After having utilizing TIBCO&#8217;s Designer product for a number of months, several blaring deficiencies come to mind.. .here&#8217;s a list of my top complaints.  I expect I&#8217;ll be adding to this list as I continue to discover new &#8216;features&#8217; within the product.</p>
<ol>
<li>Unable to open 2 versions of the same project at the same time.  Unless you rename the tibco project, designer does not let you open two version of the same project.</li>
<li>Internal editor for java sources is like trying to write a java program in notepad.  Why not allow it to link to an external editor?</li>
<li>No Subversion (svn) support.  Has perforce and cvs but no svn?.. get with the times already</li>
<li>Service deployments (.ear) files on a linux environment consume the max amount of memory allotted.. (approx 512mb per .ear).  This makes a SOA architecture hard to achieve if end up having to bundle services into a single .ear due to hardware constraints&#8230; imagine 60 services with this overhead.</li>
<li>Generated files do not present themselves in a standard order.  Often if you resave a project the xml will be re-ordered, thus triggering your source control tool to think there is an uncommitted change even if there isn&#8217;t one.</li>
<li>When defining a process archive designer prevents you from adding multiple process starters.  Strangely if you add them all at once instead of one by one this is ok.  This could be the scenario when you have a service with multiple processes that listen on different queues.  Why designer isn&#8217;t consistent I don&#8217;t know..  stop assuming to &#8216;know&#8217; what I&#8217;m trying to do!</li>
<li>(<span style="color: #800000;"><strong>UPDATED 26-Jul-2010</strong></span>) Parse Data activity does not handle reading a csv input with embedded  double quotes.   Typically CSV files identify these values by surrouding entire column contents in &#8220;, and any embedded quotes are doubled up..  This is actually what the Parse Data documentation prodivded by TIBCO states.  Unfortunately it doesn&#8217;t work that way.</li>
</ol>
<p style="padding-left: 60px;">For example:</p>
<p style="padding-left: 60px;">1, Bob, Sanders, &#8220;Height 5&#8242;4&#8243;&#8221;, Weight: 153lbs&#8221;, 100, &#8220;NSW, Victoria&#8221;</p>
<p style="padding-left: 60px;">Would not parse correctly as the 5&#8242;4&#8243; text would signify the end of the column and &#8220;, Weight: 153lbs would end up as the next value.  After talking with TIBCO support, apparently this is a known issue (BW-7947) and will be resolved in BW6. Geez, thanks.</p>
<p>Now I realize no software of this nature is foolproof, but really, some of these things are pretty basic.  I think these guys need to stepup their QA when your selling to major enterpises who utilize the stuff in mission critical areas.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=44d730e1-7ed1-83ca-9ef3-f185bca3cb71" alt="" /></div>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Main+Problems+with+TIBCO+Designer+http://9qnao.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.codedrop.ca/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Main+Problems+with+TIBCO+Designer+http://9qnao.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.codedrop.ca/blog/archives/152/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to properly correlate EMS messages in TIBCO</title>
		<link>http://www.codedrop.ca/blog/archives/144</link>
		<comments>http://www.codedrop.ca/blog/archives/144#comments</comments>
		<pubDate>Wed, 07 Oct 2009 19:14:38 +0000</pubDate>
		<dc:creator>groll</dc:creator>
				<category><![CDATA[Tibco]]></category>
		<category><![CDATA[EMS]]></category>

		<guid isPermaLink="false">http://www.codedrop.ca/blog/archives/144</guid>
		<description><![CDATA[3 days wasted trying to solve a TIBCO issue with EMS messages.&#160; 
Heres the scenario:
Utilizing a TIBCO service with a &#8220;JMS Queue Requestor&#8221; that communicated with a backoffice java service (spring, jboss rules).&#160; The TIBCO service published messages to a specific ems queue.. MYSERVICE.REQUEST and would listen for responses to queue MYSERVICE.RESPONSE.&#160; The backend service [...]]]></description>
			<content:encoded><![CDATA[<p>3 days wasted trying to solve a TIBCO issue with EMS messages.&nbsp; </p>
<p>Heres the scenario:</p>
<p>Utilizing a TIBCO service with a &#8220;JMS Queue Requestor&#8221; that communicated with a backoffice java service (spring, jboss rules).&nbsp; The TIBCO service published messages to a specific ems queue.. MYSERVICE.REQUEST and would listen for responses to queue MYSERVICE.RESPONSE.&nbsp; The backend service would pick up messages from the MYSERVICE.REQUEST queue and write the response back to MYSERVICE.RESPONSE.&nbsp; Fairly standard flow here. </p>
<p>We started making use of a static reply queue and adding correlation_id on the JMS request msg so that random temporary queues would not be created (easier for debugging) for the response.&nbsp; Suddenly we received random occurrences where&nbsp; the message response no longer matched the associated request.&nbsp; I was able to easily recreate this problem in a development environment by creating a perl program that made several simultaneous requests to our service on different threads.&nbsp; With as few a 2 threads errors started occuring all the time.</p>
<p>After some time going through our custom java code I ended up utilizing GEMS to monitor the EMS queues incoming/outgoing responses.&nbsp; All looked fine here&#8230; so that pointed back at TIBCO.&nbsp; Thus leading me to eventually stumble across the solution in the TIBCO support forums.&nbsp; The solution is posted below but I find it Interesting that BW Designer interface allows you to create this scenario in the first place.&nbsp; Seems like a bug to me&#8230;.&nbsp; This &#8216;feature&#8217; could easily cost a business many days and could be a critical failure point if it made its way into production systems.. imagine a financial application where messages were getting mixed up.&nbsp; Surely there can be more controls to prevent this scenario with the development tools.</p>
<p>** This highlights an important point to all you IT decision makers out there.&nbsp; Don&#8217;t just buy into the marketing/sales pitch when investigating software alternatives&#8230; Get valid references and speak to people using the product to get their true feedback on the product.</p>
<p><u><i><big><b>How to correlate EMS messages in a request response scenario </b></big></i></u></p>
<p><small><b><big><big>Case1</big></big></b></small></p>
<p>Consider the scenario where you are using a JMS Queue Requestor which sends a request and waits for a reply. Additionally, you have a corresponding process (say a JMSQueue receiver) which receives these requests and sends back replies (Reply To JMS Message).</p>
<p>JMS request/reply activity uses temporary destinations to ensure that reply messages are received only by the process instance that sent the request. While sending each request the JMS Queue requestor creates a temp queue for the reply. It then sends the temp reply queue name along with the request message. The temporary queue name is unique for each process instance.</p>
<p><b>If the replyToQueue queue (static) is specified then all replies will be sent to the same queue and there will be no guarantee that the correct reply will be received by the process instance that sent the request</b>.</p>
<p>You can use an expression for the replyToQueue to create different replyToDestinations for each request.<br /><big><br /></big><small><b><big><big>Case2</big></big></b></small></p>
<p>In Case1, if you need to use constant destinations for all replies and you do not want to use temporary destinations, then proceed with the following. Instead of using JMSQueueRequestor you can use the pair of JMSQueueSender and Wait for JMSQueueMessage Activities and then map the messageID of the JMSSender as the event key of the Wait for JMS activity and use the JMSCorrelationID header of the input message as the Candidate Event Key.</p>
<p>&nbsp;</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=4664d9f7-a635-8496-86e9-111e6f417b5f" /></div>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=How+to+properly+correlate+EMS+messages+in+TIBCO+http://xr7z8.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.codedrop.ca/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=How+to+properly+correlate+EMS+messages+in+TIBCO+http://xr7z8.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.codedrop.ca/blog/archives/144/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TIBCO Training Notes</title>
		<link>http://www.codedrop.ca/blog/archives/42</link>
		<comments>http://www.codedrop.ca/blog/archives/42#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:57:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tibco]]></category>

		<guid isPermaLink="false">http://www.codedrop.ca/blog/?p=42</guid>
		<description><![CDATA[The company I currently work for has recently decided to pursue use of TIBCO for some of its BPM needs&#8230;&#160;&#160; as per usual the decision was made by upper management with little or no IT involvement&#8230;&#160; of course the sales pitch made it sound good..&#160; will it fit the needs of our business? who knows&#8230;. [...]]]></description>
			<content:encoded><![CDATA[<p>The company I currently work for has recently decided to pursue use of <a target="_blank" href="http://www.tibco.com/" title="TIBCO Website">TIBCO </a>for some of its BPM needs&#8230;&nbsp;&nbsp; as per usual the decision was made by upper management with little or no IT involvement&#8230;&nbsp; of course the sales pitch made it sound good..&nbsp; will it fit the needs of our business? who knows&#8230;. but I guess time will tell!</p>
<p>Here are some highlights and comments about the TIBCO IProcess&nbsp;training course I&nbsp;attended this week:&nbsp;
<ul>	
<li>Business Studio will eventually replace the Modeler tool.&nbsp; It currently does not support some things such as duration but the intent is to deprecate modeler and have studio be the defacto place to perform process modelling.&nbsp; The different support levels and non-interaction between some of the TIBCO products force you to really consider which products your shop should be using.
<ul>	
<li>Modeler does not support pools, only swimlanes&#8230; you can put swimlanes within swimlanes to &#8220;fake&#8221; it out.</li>
<p>	
<li>Business Studio does not support durations</li>
<p></ul>
<p></li>
<p>	
<li>Try not start deamons manually.&nbsp; There is a specific order they must be started and stopped.&nbsp; A startup.bat/shutdown.bat type script is more useful.</li>
<p>	
<li>Internationalization might not be supported for email generation (great <img src='http://www.codedrop.ca/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> )&#8230; not sure if this product is really geared toward an internationalized site, especially for support of a public internet presence.&nbsp; Strength initially seems to be to support internal admin processes (in English).</li>
<p>	
<li>When a user starts to work on a procedure it locks it.. there is no way to unlock it from the interface.&nbsp; Only way to free it up is to go to your DB and fix the tables.&nbsp;&nbsp; Purge the appropriate rows from <swpro>_PM_OBJECTS_LOCK &amp;&amp; <swpro>_PROCEDURE_LOCK.&nbsp; Be careful when doing this though because if someone else starts working on the procedure after you do this then your changes might get clobbered. Another great feature!</swpro></swpro></li>
<p>	
<li>When building a procedure once you name a step you CANNOT change that name.&nbsp;Names are 8 chars or less&#8230; use a better description to aid in readability.&nbsp; As a workaround, you could manually edit the XPDL to change the step name if required&#8230; then just reload the file and re-save.</li>
<p>	
<li>Refer to &#8220;Expressions and Functions&#8221; document for special keywords/function names that can be used in procedure design. EG. sw_anything added to a selection list will allow the user to key in their own value instead of using the predefined options.</li>
<p>	
<li>Filtering the work queue is very limiting.&nbsp; Can only define 4 custom filters (which are parameters).&nbsp; Not sure how we will be able to support all of our current filtering requirements.</li>
<p>	
<li>Some useful auditing messages stored in: AUDITUSR.MES (This is a template file for the auding messages.&nbsp; You can define custom audit messages within this file).</li>
<p>	
<li>Doesn&#8217;t seem to be any way to enforce data masks in forms&#8230; maybe a way to do this in general interface using javascript but am not sure.</li>
<p></ul>
<p><strong><em>Terminology:</em></strong>
<ol>	
<li>Releasing a work item moves the case from step &#8211; step.</li>
<p>	
<li>Releasing a procedure moves it from dev to prod.&nbsp; But keep in mind there might be a QA environment that is still seperate from the real PROD enviroment (both having 2 iprocess servers, one for dev and one for prod).</li>
<p></ol>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=06260241-9346-8a29-ae6e-a356e18e4e8e" /></div>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=TIBCO+Training+Notes+http://y8ymg.th8.us" title="Post to Twitter"><img class="nothumb" src="http://www.codedrop.ca/blog/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=TIBCO+Training+Notes+http://y8ymg.th8.us" title="Post to Twitter">Tweet This Post</a></p>]]></content:encoded>
			<wfw:commentRss>http://www.codedrop.ca/blog/archives/42/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
