<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4476863800158400170</id><updated>2011-12-06T10:29:26.909+01:00</updated><category term='clustering'/><category term='scale'/><category term='scalability'/><category term='java class name script'/><category term='sync synchronize password technique single login'/><category term='availability'/><category term='scale scaling performance availability reliatbility'/><category term='ism service management taddm asset'/><category term='scaling'/><category term='script domino multivalued attribute'/><category term='elevator pitch blurb sales explanation'/><category term='solution directory customize setting preference'/><category term='connector interface api direct data access'/><category term='java script exception try catch variable undefined'/><category term='HA'/><category term='ism service management taddm asset service desk tsrm ticket helpdesk'/><category term='db2 sql jdbc error code log troubleshoot debug'/><category term='debug debugger troubleshoot explore script technique javascript ecmascript'/><category term='custom connector component library api notes domino extend tdi'/><category term='performance'/><category term='connector loop feed flow parse attribute hook on no match on multiple found'/><category term='forum java string handling javascript jscript InterpretException'/><category term='lotus connections profiles syncdbfromsource'/><category term='system store cloudscape derby backup'/><category term='HA scale scaling scalability performance availability reliability'/><title type='text'>TDIing out loud</title><subtitle type='html'>Ramblings on the paradigm-shift that is TDI.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2769261604833013633</id><published>2011-11-21T11:10:00.000+01:00</published><updated>2011-11-21T11:10:12.987+01:00</updated><title type='text'>Early Christmas Stocking Stuffers</title><summary type='text'>Since this past summer, TDI 7.1 Fixpacks now include a number of new components. However, since they are dropped in the examples folder during fixpack updating and not under jars, they won't show up in the Add Component wizard until you make them available to your TDI installation. This can be done in a couple of ways, as I have outlined here.
To whet your appetite, here is a list of powerful new</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2769261604833013633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2769261604833013633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2769261604833013633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2769261604833013633'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/11/early-christmas-stocking-stuffers.html' title='Early Christmas Stocking Stuffers'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-4525942746024640333</id><published>2011-11-12T16:30:00.000+01:00</published><updated>2011-11-12T16:30:28.414+01:00</updated><title type='text'>Getting TDI installed on Ubuntu</title><summary type='text'>Courtesy of TDI champion and support guru, Jason Williams: Adventures with IBM TDI</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/4525942746024640333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=4525942746024640333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4525942746024640333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4525942746024640333'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/11/getting-tdi-installed-on-ubuntu.html' title='Getting TDI installed on Ubuntu'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2903747754340502933</id><published>2011-10-18T10:21:00.001+02:00</published><updated>2011-10-18T10:22:06.425+02:00</updated><title type='text'>Joined Up Thinking: Tivoli Directory Integrator Web Services Revisited</title><summary type='text'>Joined Up Thinking: Tivoli Directory Integrator Web Services RevisitedStephen Swann again shares the fruits of his adventures with TDI.</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2903747754340502933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2903747754340502933' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2903747754340502933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2903747754340502933'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/10/joined-up-thinking-tivoli-directory.html' title='Joined Up Thinking: Tivoli Directory Integrator Web Services Revisited'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2801612262918622118</id><published>2011-08-01T10:36:00.014+02:00</published><updated>2011-11-10T02:10:54.001+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forum java string handling javascript jscript InterpretException'/><title type='text'>work.FullName.toUpperCase() - What's wrong with this picture?</title><summary type='text'>The fact that TDI lets you use '.' to reference attributes (work.FullName) coupled with JavaScript engine's (limited) automatic type conversion are a constant source of confusion. Although I feel a long rant coming on, I will resist and save some content on this subject for future blogs. For now, suffice to say that using dot notation to reference an attribute gets you just that: a </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2801612262918622118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2801612262918622118' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2801612262918622118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2801612262918622118'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/08/workfullnametouppercase-whats-wrong.html' title='work.FullName.toUpperCase() - What&apos;s wrong with this picture?'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-8814250735882853198</id><published>2011-07-01T10:43:00.006+02:00</published><updated>2011-07-01T11:11:58.991+02:00</updated><title type='text'>Higher Availability</title><summary type='text'>A question oft asked: How do I make my TDI solution highly available? The answer often boils down to what 'available' means to your solution. In many cases it means that one or more AssemblyLines continue to function. This can be 'wired into' a solution with surprisingly little effort.To start with, don't create long-running ALs; In other words: don't set the timeout parameter for your Iterator </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/8814250735882853198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=8814250735882853198' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8814250735882853198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8814250735882853198'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/07/higher-availability.html' title='Higher Availability'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6423947231572647837</id><published>2011-06-16T12:30:00.002+02:00</published><updated>2011-06-16T12:46:01.392+02:00</updated><title type='text'>Adding custom headers lines to CSV output</title><summary type='text'>I've gotten this questions a few times recently: how to put custom content at the top of a CSV file.One solution would be to code the After Close Hook for the File System Connector, creating a new file that combined the headers and the CSV content. However, there is an easier solution (thanks again to Jens 'Beautiful Mind' Thomassen):Add the following script to the After Initialize Hook of the </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6423947231572647837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6423947231572647837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6423947231572647837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6423947231572647837'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/06/adding-custom-headers-lines-to-csv.html' title='Adding custom headers lines to CSV output'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-4161164963965872542</id><published>2011-04-26T16:10:00.008+02:00</published><updated>2011-06-16T12:51:51.201+02:00</updated><title type='text'>skipEntry() I thought I knew you...</title><summary type='text'>When you want to abruptly end the current cycle of an AssemblyLine, a script call to system.skipEntry() is the most commonly used method. However, this is not always the best choice. In fact, it is only relevant when you have an Iterator in the Feed section. If you don't then system.exitFlow() is the better choice. Except if your AL has a Server mode Connector. To explain why, I'll have to say a </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/4161164963965872542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=4161164963965872542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4161164963965872542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4161164963965872542'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/04/skipentry-i-thought-i-knew-you.html' title='skipEntry() I thought I knew you...'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-563734212093888497</id><published>2011-03-25T18:09:00.004+01:00</published><updated>2011-03-25T18:17:22.119+01:00</updated><title type='text'>Reference error: 'java' not found</title><summary type='text'>Just to let you know, if you get the above error then it means you've probably spelled the Java class name wrong.now = new java.util.Calender()I was getting ready to start pulling out hair when I saw the light: 'Calendar'.And I've also gotten other error messages that turned out to be caused by spelling. Just wanted to share that :)</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/563734212093888497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=563734212093888497' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/563734212093888497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/563734212093888497'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/03/reference-error-java-not-found.html' title='Reference error: &apos;java&apos; not found'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6324065737876874545</id><published>2011-03-23T10:25:00.015+01:00</published><updated>2011-03-23T13:06:54.122+01:00</updated><title type='text'>To Google, or not to Google? That is the wrong question.</title><summary type='text'>If you've ever hit an error or connection problem or logical challenge using TDI and cursed the lack of helpful content to be found online, you may not be looking in the right places.Firstly, use the term 'tdi' in your search arguments only if you're interest is motors or diving. Searches that include 'tivoli directory integrator' will be less exciting but more relevant.Secondly, remember that </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6324065737876874545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6324065737876874545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6324065737876874545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6324065737876874545'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/03/to-google-or-not-to-google-that-is.html' title='To Google, or not to Google? That is the wrong question.'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6430111125989010111</id><published>2011-03-16T14:15:00.010+01:00</published><updated>2011-03-17T18:28:37.188+01:00</updated><title type='text'>CSV Parsing with a twist</title><summary type='text'>So the question I got was this: how can I get the line being parsed by the CSV Parser?Unfortunately, the CSVParser class does not have any public method for this, so the following is not possible:lineRead = thisConnector.getParser().getCurrentLine()Instead, with the help of Jens Thomassen, TDI surgeon, and the indispensible AL Debugger, I created this example TDI 7.1 AL to do just that. You can </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6430111125989010111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6430111125989010111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6430111125989010111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6430111125989010111'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/03/csv-parsing-with-twist.html' title='CSV Parsing with a twist'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-8731233291559241784</id><published>2011-02-23T10:52:00.010+01:00</published><updated>2011-02-25T11:35:15.800+01:00</updated><title type='text'>Portable Solutions</title><summary type='text'>There are two simple tricks that will make your TDI solutions more portable:Use forward slash in pathnamesUse relative pathnamesA forward slash will work on Unix and Windows, whereas backslash is Windows-only. The reason I use relative pathnames is that my ultimate goal is a single zip file distributable.The Solution Directory is the root for all relative paths. If you look in the ibmdisrv and </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/8731233291559241784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=8731233291559241784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8731233291559241784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8731233291559241784'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2011/02/portable-solutions.html' title='Portable Solutions'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-459453795561607120</id><published>2010-12-08T10:15:00.006+01:00</published><updated>2010-12-08T12:49:57.834+01:00</updated><title type='text'>TDI keyboard shortcuts</title><summary type='text'>If you're like me then you're lazy. For example, I'd rather spend the 8 hours making an AssemblyLine than the 1 hour of tedious work it saved me from.I'm also not fond of mousing about. To limit this while TDI'ing, I've opened Window &gt; Preferences &gt; Keys in TDI and bound the following shortcut keys in All Windows and Dialogs:Ctrl+R - Run this ALCtrl+D - Debug this ALCtrl + Down Arrow - Step </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/459453795561607120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=459453795561607120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/459453795561607120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/459453795561607120'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2010/12/tdi-keyboard-shortcuts.html' title='TDI keyboard shortcuts'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-3922433222510457060</id><published>2010-06-08T11:26:00.011+02:00</published><updated>2010-06-08T12:45:09.734+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='connector loop feed flow parse attribute hook on no match on multiple found'/><title type='text'>Loop a Connector today</title><summary type='text'>If you've never tried Connector Loops you should. Especially when you find yourself stuffing initialization scripts into your Prolog Hooks - because that's the only place where you can do something before the Feed Connector (e.g. Iterator) kicks in and reads the first entry; Or if you're parsing data entries out of Attribute values (like XML/SOAP, JSON, ...) being returned by your Feed Iterator. </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/3922433222510457060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=3922433222510457060' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3922433222510457060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3922433222510457060'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2010/06/loop-connector-today.html' title='Loop a Connector today'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-8521108489884038826</id><published>2010-02-06T21:34:00.016+01:00</published><updated>2010-02-08T10:41:49.080+01:00</updated><title type='text'>What Is The Solution Directory?</title><summary type='text'>The Solution Directory is the "current path" whenever you run TDI, either the CE or the Server. This setting is personal to a specific TDI Server. As a result, if you use relative filepaths then your solution is easily moved between TDI Servers. It is also easier to deploy and maintain (cost of ownership), as well as giving you an asset that is readily reused. Let me illustrate with an </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/8521108489884038826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=8521108489884038826' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8521108489884038826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8521108489884038826'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2010/02/what-is-solution-directory.html' title='What Is The Solution Directory?'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_VD-sieDuqyc/S2_cSBcksiI/AAAAAAAAADQ/rILyQ6irTjo/s72-c/SetParamViaProperty.gif' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-7106444210010253352</id><published>2009-09-02T11:30:00.018+02:00</published><updated>2009-09-03T09:38:37.513+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scaling'/><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><category scheme='http://www.blogger.com/atom/ns#' term='HA scale scaling scalability performance availability reliability'/><category scheme='http://www.blogger.com/atom/ns#' term='clustering'/><category scheme='http://www.blogger.com/atom/ns#' term='scalability'/><category scheme='http://www.blogger.com/atom/ns#' term='scale'/><category scheme='http://www.blogger.com/atom/ns#' term='HA'/><category scheme='http://www.blogger.com/atom/ns#' term='availability'/><title type='text'>Clustering, HA and Scaling, Oh My!</title><summary type='text'>Ok, here comes some ramblings on making better TDI solutions. Risk reduction is always a matter of expense versus exposure, and this approach requires an upfront investment and adds lots of moving parts, so it's not a size that fits all and pays most dividends for larger projects, or for series of similar smaller ones. That said...You start by deconstructing a solution into a set of individual </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/7106444210010253352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=7106444210010253352' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7106444210010253352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7106444210010253352'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/09/clustering-ha-and-scaling-oh-my.html' title='Clustering, HA and Scaling, Oh My!'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VD-sieDuqyc/Sp5GwjwRENI/AAAAAAAAAC8/N-S2dnCR-sc/s72-c/DSC03777.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6523431612125407023</id><published>2009-08-28T09:24:00.009+02:00</published><updated>2009-08-28T09:37:43.181+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='elevator pitch blurb sales explanation'/><title type='text'>Why TDI (version 2)</title><summary type='text'>Here comes an updated version based on feedback:---All organizations want to reduce risk and maximize return on current investments, especially during tough times when spending for new IT dwindles and resources are redirected towards improving existing infrastructure. Given that infrastructures tend to be the result of evolution - in other words, survival of the highest switching cost and not a </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6523431612125407023/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6523431612125407023' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6523431612125407023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6523431612125407023'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/08/why-tdi-version-2.html' title='Why TDI (version 2)'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-782123768927129816</id><published>2009-08-20T12:59:00.013+02:00</published><updated>2011-09-16T14:51:22.118+02:00</updated><title type='text'>TDI Elevator Pitch</title><summary type='text'>I have been asked many times to write a blurb for a TDI event (e.g. a LabJam) or conference session, with specific instructions to not use much techie-speak. After numerous iterations, and much careful listening - particularly to our architect, Johan Varno - I'm relatively pleased with the following Why TDI? pitch:---Most organizations want to reduce risk, especially during tough times when </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/782123768927129816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=782123768927129816' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/782123768927129816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/782123768927129816'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/08/tdi-elevator-pitch.html' title='TDI Elevator Pitch'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-1986153067585574173</id><published>2009-08-11T11:58:00.006+02:00</published><updated>2009-08-11T12:46:46.706+02:00</updated><title type='text'>Dealing with Errors</title><summary type='text'>Back from summer holiday and starting to remember what I do for a living again. I thought I'd start with a quick post about error handling.As you already know, the How-To writeup here talks about the mechanics of TDI error flows and Hooks, and from the Configs I've received, people are at the very least enabling Error Hooks so that their AssemblyLines don't stop. A good start.However, logging </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/1986153067585574173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=1986153067585574173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/1986153067585574173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/1986153067585574173'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/08/dealing-with-errors.html' title='Dealing with Errors'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-5817466250554368393</id><published>2009-07-10T18:55:00.001+02:00</published><updated>2009-07-10T19:02:07.873+02:00</updated><title type='text'>AJAX made easy and interactive</title><summary type='text'>Stolen from Jon Elwoods internal IBM blog:---------------------------------------------------------I was writing some simple AJAX functions for a web page for the migration project.  They are generic enough to be used anywhere...I created an assembly line that iterates on an HTTPServer FC.  I found it hard to code all my client-side JavaScript functions directly into TDI (caused problems in </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/5817466250554368393/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=5817466250554368393' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/5817466250554368393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/5817466250554368393'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/07/ajax-made-easy-and-interactive.html' title='AJAX made easy and interactive'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-9163181436072216847</id><published>2009-04-13T01:30:00.003+02:00</published><updated>2009-07-10T14:50:42.955+02:00</updated><title type='text'>The Power of the FormEntry Connector</title><summary type='text'>I alluded to this in a previous post and would like to expand on it here. If you have ever been in the situation where you wanted to iterate over the xml nodes in the string value of an Attribute, or csv, or some other format, then you can solve this with JavaScript. I used to as well. Now I use the FormEntry Connector.It's an Iterator that uses an attached Parser to read the text value you write</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/9163181436072216847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=9163181436072216847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/9163181436072216847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/9163181436072216847'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/04/power-of-formentry-connector.html' title='The Power of the FormEntry Connector'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2719816221368638022</id><published>2009-04-01T21:56:00.005+02:00</published><updated>2009-07-10T15:02:34.598+02:00</updated><title type='text'>Scheduling when AssemblyLines run</title><summary type='text'>When possible, use the scheduling mechanisms already in place: cronjobs, Windows scheduler, etc. Your TDI ALs can be started from the command line:   ibmdisrv -c MyConfig.xml -r MyAssemblyLineThat way if something goes wrong, your flow is restarted.You can also do this in TDI using the Timer Connector (Iterator only). Here you can set up a scheduling mask. In the Flow section of your scheduling </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2719816221368638022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2719816221368638022' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2719816221368638022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2719816221368638022'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/04/scheduling-when-assemblylines-run.html' title='Scheduling when AssemblyLines run'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-8875402858807381560</id><published>2009-02-04T10:32:00.004+01:00</published><updated>2009-04-14T21:31:39.444+02:00</updated><title type='text'></title><summary type='text'>Here is an excellent developerWorks article on using TDI to Web 2.0-enable practically any type of data store or system, focusing on practical examples using TIM and TAM; and with Connections as the dashboard.Thanks to Chris and Neil for sharing an impressive piece of work! Including their TDI Config and new ATOM Feed Connector.</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/8875402858807381560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=8875402858807381560' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8875402858807381560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/8875402858807381560'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/02/here-is-excellent-developerworks.html' title=''/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-928708338319919629</id><published>2009-01-02T00:19:00.008+01:00</published><updated>2009-01-05T12:19:03.195+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ism service management taddm asset'/><title type='text'>ISM: Creating a Discovery Library Adapter to write IdML docs</title><summary type='text'>If you are interested in creating IdML import files for systems like TADDM then there is a video that shows you how to assemble a DLA using TDI here.There is also a shorter version on YouTube.Please let me know if you have any comments, suggestions, corrections or just a bone to pick!Happy 2009!</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/928708338319919629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=928708338319919629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/928708338319919629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/928708338319919629'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2009/01/ism-creating-dla-idml-import-file.html' title='ISM: Creating a Discovery Library Adapter to write IdML docs'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2594536075897898038</id><published>2008-11-22T15:15:00.011+01:00</published><updated>2009-01-02T18:49:43.484+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lotus connections profiles syncdbfromsource'/><title type='text'>Troubleshoot the SyncDBfromSource AL in the Lotus Connections TDI Config: profiles_tdi.xml</title><summary type='text'>Now that I have your attention, let me point you to this forum post where I describe the steps it takes to bring the SyncDBfromSource AssemblyLine -- the AL that forms the entire API into Connections' Profiles registry -- into the TDI Debugger in order to step through it for purposes of troubleshooting and adventure:Google Group post about how to debug the Connections TDI ALs (near the bottom of </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2594536075897898038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2594536075897898038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2594536075897898038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2594536075897898038'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/11/troubleshoot-syncdbfromsource-in-lotus.html' title='Troubleshoot the SyncDBfromSource AL in the Lotus Connections TDI Config: profiles_tdi.xml'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-3736070254091573764</id><published>2008-11-10T23:44:00.005+01:00</published><updated>2008-11-11T13:25:46.954+01:00</updated><title type='text'>...now I remember</title><summary type='text'>Remember to check out the FormEntry Connector. This is the perfect companion to the AL Debugger, letting you set up an infinite feed while you interactively set up Attribute values in order to exercise every corner of your AssemblyLine logic.Plus, you can map out to the entryRawData parameter when this component is used in a Connector Loop, letting you use multiple Parsers on the same </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/3736070254091573764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=3736070254091573764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3736070254091573764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3736070254091573764'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/11/now-i-remember.html' title='...now I remember'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-4159194920054212167</id><published>2008-11-10T22:23:00.013+01:00</published><updated>2009-01-02T18:50:42.548+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='custom connector component library api notes domino extend tdi'/><title type='text'>New Component and Library .jar Files</title><summary type='text'>Generally, adding a new component to TDI's library amounts to either 1) copying the relevant .jar files to the [TDI Installation Folder]/jars sub-directory; or 2) leaving these files where they are and instead telling TDI where to find them.This latter is done by setting the com.ibm.di.loader.userjars property in solution.properties, if you have a Solution Directory, or the [TDI Installation </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/4159194920054212167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=4159194920054212167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4159194920054212167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4159194920054212167'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/11/new-component-and-library-jar-files.html' title='New Component and Library .jar Files'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6651649811694309756</id><published>2008-11-06T21:45:00.001+01:00</published><updated>2008-11-06T21:17:14.721+01:00</updated><title type='text'>Exceptional Solutions</title><summary type='text'>There are two types: those that go beyond the call of duty to deliver scalable, available and maintainable integration; and those that are defined by the stack dumps of unhandled exceptions.How do you keep an AssemblyLine in the air? By catching and dealing with exceptions yourself. This is broadly done in two ways:1) By putting code in Error Hooks. At the very least, you should log the error. I </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6651649811694309756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6651649811694309756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6651649811694309756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6651649811694309756'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/09/exceptional-solutions.html' title='Exceptional Solutions'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-120343805094244834</id><published>2008-11-01T00:44:00.005+01:00</published><updated>2009-01-02T18:52:49.779+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ism service management taddm asset service desk tsrm ticket helpdesk'/><title type='text'>Integrated Service Management (ISM) leverages TDI</title><summary type='text'>TDI is bundled with IBM's ISM offerings to provide integration services for deployment of solutions like TADDM (System/Asset &amp; Relationship Discovery Tool), CCMDB (Change &amp; Configuration Management DB) and TSRM (IBM's Service Desk and Service Catalog product).Here's a TSRM scenario captured on film:</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/120343805094244834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=120343805094244834' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/120343805094244834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/120343805094244834'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/11/integrated-service-management-ism.html' title='Integrated Service Management (ISM) leverages TDI'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-5342941707943156859</id><published>2008-10-22T15:46:00.001+02:00</published><updated>2009-01-02T18:53:41.369+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debug debugger troubleshoot explore script technique javascript ecmascript'/><title type='text'>I didn't always like scripting</title><summary type='text'>Not back when Johan first pulled me into Metamerge. Even though I sometimes just wanted to break free of the Rube Goldberg-esque world of AL construction and do something quick and direct, like:if (error.getString("status") != "ok")  task.shutdown(); // Invokes AL Shutdown Request HookMy issue with scripting was that JavaScript code is "opaque" in TDI; there is no Hook flow through it, making it </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/5342941707943156859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=5342941707943156859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/5342941707943156859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/5342941707943156859'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/10/i-didnt-always-like-scripting.html' title='I didn&apos;t always like scripting'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_VD-sieDuqyc/SP7lnogtM2I/AAAAAAAAABM/HaPbBcIAsn0/s72-c/DebuggingScriptConnector.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-4012407937743022843</id><published>2008-06-12T00:16:00.011+02:00</published><updated>2009-01-02T18:54:15.699+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='solution directory customize setting preference'/><title type='text'>Changing the Solution Directory</title><summary type='text'>Normally, TDI is installed to a program area (e.g. Program Files) and the TDI project files are located in the Solution Directory, which under Windows is "My Documents/TDI"; In the same way that you store your text processor binaries separately from the documents you write with them. This making it easier to include TDI solutions in your existing backup plan.I've seen a lot of people configure </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/4012407937743022843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=4012407937743022843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4012407937743022843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/4012407937743022843'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/06/normally-tdi-is-installed-to-program.html' title='Changing the Solution Directory'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-7304564400015458596</id><published>2008-06-04T23:11:00.006+02:00</published><updated>2008-06-04T23:17:27.471+02:00</updated><title type='text'>Newsgroup</title><summary type='text'>The TDI NNTP newsgroup has been out-of-order for a while now. There is a Google Group that mirrors all its content, plus has a good deal of its own activity:http://groups.google.com/group/ibm.software.network.directory-integrator/topics?lnk=liIt also has good spam filtering.See you in the forums!</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/7304564400015458596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=7304564400015458596' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7304564400015458596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7304564400015458596'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/06/newsgroup.html' title='Newsgroup'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2090297082758342279</id><published>2008-04-15T15:59:00.005+02:00</published><updated>2009-01-02T18:55:01.879+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sync synchronize password technique single login'/><title type='text'>Sharing Secrets, aka Synchronizing Passwords</title><summary type='text'>There are plenty of good reasons for synchronizing credentials, like migrating a Portal from one identity store to another, or as an alternative to single sign-on - such as making sure that the Windows password gets put into (for example) an LDAP directory. But while transferring user id's is pretty straightforward, synchronizing passwords is not. This is because passwords are encrypted </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2090297082758342279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2090297082758342279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2090297082758342279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2090297082758342279'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/01/sharing-secrets-aka-synchronizing.html' title='Sharing Secrets, aka Synchronizing Passwords'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-7807912656810226794</id><published>2008-02-06T10:24:00.000+01:00</published><updated>2008-02-07T23:48:21.444+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='script domino multivalued attribute'/><title type='text'></title><summary type='text'>If you want TDI to return mutliple values for an Attribute then youjust need to return a JavaScript array:   var mValues = Array();   mValues[0] = "first one";   mValues[1] = "second one";   mValues[2] = "you get the picture";   ret.value = mValues;This would of course be in a scripted Attribute Map.If it's just literal values you want to return (like objectClass) you can easily do it like this:</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/7807912656810226794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=7807912656810226794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7807912656810226794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7807912656810226794'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2008/02/if-you-want-tdi-to-return-mutliple.html' title=''/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2615284711797699536</id><published>2007-11-21T19:35:00.001+01:00</published><updated>2009-01-02T18:56:56.384+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='connector interface api direct data access'/><title type='text'>What do JDBC commit/rollback and LDAP rebind have in common?</title><summary type='text'>Both are features of their respective protocols and both are available for use from script. All you have to do is get hold of the Connector Interface, aka the "CI".var ci = thisConnector.getConnector();Note that "thisConnector" is a handy variable that always references the current component. Also, for TDI versions prior to 6.1.1 you don't have the getConnector() method and must reference the </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2615284711797699536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2615284711797699536' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2615284711797699536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2615284711797699536'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/11/what-do-jdbc-commitrollback-and-ldap.html' title='What do JDBC commit/rollback and LDAP rebind have in common?'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-6972201082184790886</id><published>2007-10-31T12:29:00.000+01:00</published><updated>2007-10-31T12:35:18.255+01:00</updated><title type='text'>Made-to-order music videos</title><summary type='text'>I found this very cool online service and made TDI ready for MTV ;)BlueGlue remix #2Guess I'll need to add a concert t-shirt here as well then:Prepare to be integrated...</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/6972201082184790886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=6972201082184790886' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6972201082184790886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/6972201082184790886'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/10/made-to-order-music-videos.html' title='Made-to-order music videos'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-821298769396333942</id><published>2007-10-29T11:18:00.001+01:00</published><updated>2009-01-02T18:57:54.241+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scale scaling performance availability reliatbility'/><title type='text'>Why throw multiple ALs at a single problem?</title><summary type='text'>I get this one occasionally and it's a very valid question from a simplicity standpoint (a TDI mantra). However, there are good reasons for dividing a workload up among multiple AssemblyLines, and better performance is one of them -- as long as the task at hand allows for multi-threading; For example, data movement/migration/sync where the ordering of updates is not significant as long as all are</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/821298769396333942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=821298769396333942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/821298769396333942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/821298769396333942'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/10/why-throw-multiple-als-at-single.html' title='Why throw multiple ALs at a single problem?'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-2627589176783694391</id><published>2007-09-24T16:28:00.000+02:00</published><updated>2007-09-24T20:28:37.569+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='system store cloudscape derby backup'/><title type='text'>Online backup of the System Store (Derby/Cloudscape)</title><summary type='text'>Follow these steps to build an automated System Store backup utility. Note that your System Store must be set up for Network mode.Create a new AL (call it "BackupSystemStore")Add a JDBC Connector (call it "Derby") in AddOnly mode and put it in Passive state.Configure the JDBC Connector to point at the System Store. The easiest way to do this is to click on the label of the JDBC URL parameter. In </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/2627589176783694391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=2627589176783694391' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2627589176783694391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/2627589176783694391'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/09/online-backup-of-system-store.html' title='Online backup of the System Store (Derby/Cloudscape)'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-3746252135824223902</id><published>2007-09-21T09:26:00.001+02:00</published><updated>2007-09-26T09:21:07.300+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='db2 sql jdbc error code log troubleshoot debug'/><title type='text'>Buried treasure</title><summary type='text'>A favored pasttime of my youth was treasure hunting. Whether it was scouring a hillside for Easter eggs, rummaging in the attic of my grandparents' house or just cleaning out the pockets of my jeans. I have this same, if somewhat unusual relationship to troubleshooting error messages from TDI. The secret is knowing where to dig.The first thing you need to do is scan your log output for the very </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/3746252135824223902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=3746252135824223902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3746252135824223902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3746252135824223902'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/09/buried-treasure.html' title='Buried treasure'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-3732800208850201082</id><published>2007-08-29T10:07:00.000+02:00</published><updated>2007-09-26T09:22:22.705+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java class name script'/><title type='text'>What's in a name?</title><summary type='text'>Ok, so it's not immediately obvious that the pre-defined script variable system is actually detailed in the TDI JavaDocs under the com.ibm.di.function.UserFunctions class. Or that main goes by the whimsical class name com.ibm.di.server.RS and task is com.ibm.di.server.AssemblyLine.But this is no problem when all you have to do is ask:   task.logmsg("    system: " + system.getClass());   </summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/3732800208850201082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=3732800208850201082' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3732800208850201082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/3732800208850201082'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/08/whats-in-name.html' title='What&apos;s in a name?'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4476863800158400170.post-7211768843250183586</id><published>2007-08-27T09:22:00.000+02:00</published><updated>2007-09-26T09:50:53.781+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java script exception try catch variable undefined'/><title type='text'>Exceptional trick for initialization code</title><summary type='text'>Let's say you have an AssemblyLine that will be processing thousands of entries. and you want a progress message written every 100 cycles. This will require a counter.var entryCount = 0;And you'll need a snippet of script to write your message.// Increment the counter and test if it's time to write the progress message.// I chose here to write to standard output and not the log//entryCount++;if (</summary><link rel='replies' type='application/atom+xml' href='http://www.tdiingoutloud.com/feeds/7211768843250183586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4476863800158400170&amp;postID=7211768843250183586' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7211768843250183586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4476863800158400170/posts/default/7211768843250183586'/><link rel='alternate' type='text/html' href='http://www.tdiingoutloud.com/2007/08/exceptional-trick-for-initialization.html' title='Exceptional trick for initialization code'/><author><name>Eddie Hartman</name><uri>http://www.blogger.com/profile/12264507239868838185</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_VD-sieDuqyc/SoFcQDkv31I/AAAAAAAAACc/Oa9B5W_vN9I/S220/Ed_BluePages_NoTACCT.jpg'/></author><thr:total>1</thr:total></entry></feed>
