<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DUMMQnczeip7ImA9WhBbGE0.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894</id><updated>2013-05-17T09:18:03.982-07:00</updated><category term="unix" /><title>DATASTAGE</title><subtitle type="html">DATASTAGE INFO</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.datastageinfo.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>92</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/datastageinfo/RzuB" /><feedburner:info uri="datastageinfo/rzub" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;Ak4HQHY5eip7ImA9WhBQGUo.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-8596502387083019065</id><published>2013-03-22T12:02:00.000-07:00</published><updated>2013-03-22T12:02:11.822-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-03-22T12:02:11.822-07:00</app:edited><title>Why Entire partition is used in LOOKUP stage ?</title><content type="html">Entire partition has all data across the nodes So while matching(in lookup) the records all data should be present across all nodes.&lt;br /&gt;
&lt;br /&gt;
For lookup sorting is not required.so when we are not using entire partition then reference data splits into all nodes. Then each primary record need check with all nodes for matched reference record.Then we face performance issue.If we use entire in lookup then one primary record needs to look into 1 node is enough.if match found then that record goes to target otherwise it move to reject,drop etc(based on requirement)no need check in another node.In this case if we are running job in 4 nodes then at a time 4 records should process.&lt;br /&gt;Note:Please remember we go for lookup only we have small reference data.If we go for big data it is performance issue(I/O work will increase here) and also some times job will abort.&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/oKEFajnh810" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/8596502387083019065/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2013/03/why-entire-partition-is-used-in-lookup.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8596502387083019065?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8596502387083019065?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/oKEFajnh810/why-entire-partition-is-used-in-lookup.html" title="Why Entire partition is used in LOOKUP stage ?" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2013/03/why-entire-partition-is-used-in-lookup.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkMDSX88cCp7ImA9WhRQGEQ.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-2900427785805204895</id><published>2011-12-14T12:27:00.001-08:00</published><updated>2011-12-14T12:27:58.178-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-14T12:27:58.178-08:00</app:edited><title>FastTrack Makes Your DataStage Development Faster</title><content type="html">IBM introduced a tool called FastTrack that is a source to target 
mapping tool that is plugged straight into the Information Server and 
runs inside a browser.&amp;nbsp; &lt;br /&gt;


The tool was introduced with the Information Server and is available in the 8.1 version.&lt;br /&gt;


As the name suggests IBM are using it to help in the analysis and 
design stage of a data integration project to do the source to target 
mapping and the definition of the transform rules.&amp;nbsp; Since it is an 
Information Server product it runs against the Metadata Server and can 
share metadata with the other products and it can run inside a browser.&lt;br /&gt;


I have talked about it previously in &lt;a href="http://it.toolbox.com/blogs/infosphere/new-product-ibm-fasttrack-for-source-to-target-mapping-23327"&gt;New Product: IBM &lt;em&gt;FastTrack&lt;/em&gt; for Source To Target Mapping&lt;/a&gt; and &lt;a href="http://it.toolbox.com/blogs/infosphere/fasttrack-excel-out-of-your-datastage-project-19786"&gt;&lt;em&gt;FastTrack&lt;/em&gt; Excel out of your DataStage project&lt;/a&gt;
 but now I have had the chance to see it in action on a Data Warehouse 
project.&amp;nbsp; We have been using the tool for a few weeks now and we are 
impressed.&amp;nbsp; It’s been easier to learn than other Information Server 
products and it manages to fit most of what you need inside frames on a 
single browse screen.&amp;nbsp; Very few bugs and it has been in the hands of 
someone who doesn’t know a lot about DataStage and they have been able 
to complete mappings and generate DataStage jobs.&lt;br /&gt;


I hope to get some screenshots up in the weeks to come but here are some observations in how we have saved time with FastTrack:&lt;br /&gt;


&lt;ol&gt;
&lt;li&gt;FastTrack provides faster access to metadata.&amp;nbsp; In an Excel/Word 
mapping environment you need to copy and paste your metadata from a tool
 that can show it into your mapping document.&amp;nbsp; FastTrack can see 
metadata imported through any of the Information Server import methods 
such as DataStage plugin imports, the import bridges from Meta 
Integration Technologies Inc (MITI): ErWin, InfoSphere Data Architect, 
Cognos, Business Objects, Informatica etc.&amp;nbsp; The imports via the database
 connectors from any other Information Server product such as the table 
definitions imported and profiled by Information Analyser.&amp;nbsp; You can 
import an entire database in a few minutes and drag and drop it onto 
your various mappings. &lt;/li&gt;
&lt;li&gt;FastTrack lets you map columns from XML and Cobol Copybook 
hierarchies to flat file relational database targets without any 
metadata massaging.&amp;nbsp; In Excel you would spend days cutting and chopping 
XML and Cobol complex flat file definitions.&amp;nbsp; With FastTrack you can 
access a definition imported through the DataStage Cobol or XML 
importers and map away. &lt;/li&gt;
&lt;li&gt;FastTrack lets you do source to target mapping straight out of 
your modelling tool.&amp;nbsp; You can import your model straight into the 
Metadata Server via a bridge and start mapping it.&amp;nbsp; No mucking around 
with database DDLs and no need to get access to create database 
schemas.&amp;nbsp; This can be handy in the early days of a project. &lt;/li&gt;
&lt;li&gt;FastTrack has some great auto mapping functions.&amp;nbsp; There is a 
discovery functions where you drag and drop the source or target table 
onto one side of the mapping and then use the discover function to find 
candidate matches for the other side – then choose the “Best Match” to 
take the first of the candidates.&amp;nbsp; If you choose multiple columns you 
can Discover and Best Match all the columns in your table.&amp;nbsp; It searches 
through for matching column names against the candidate tables. &lt;/li&gt;
&lt;li&gt;FastTrack can map auto match on the business glossary terms 
attached to those columns.&amp;nbsp; It is one of the few products in the 
Information Server that makes productive use of the Business Glossary to
 speed things up.&amp;nbsp; Of course you need to create your Glossary and fill 
it with terms and map those terms to physical metadata first!&amp;nbsp; FastTrack
 lets you add Glossary terms to physical columns as you map. &lt;/li&gt;
&lt;li&gt;FastTrack lets you balance the mapping between business analysts 
and ETL developers.&amp;nbsp; Both can use the tool – it’s an Excel style 
interface – but business analysts may be faster at mapping early in the 
project as they gather requirements and rules and ETL&amp;nbsp;&amp;nbsp; This can help 
avoid bottlenecks on your team if anyone can do mapping and can push the
 results straight into DataStage. &lt;/li&gt;
&lt;li&gt;FastTrack creates DataStage jobs.&amp;nbsp; These jobs have the source and 
target connectors already loaded and configured and stages such as 
lookup, join and transformer already built.&amp;nbsp; It even lets you add 
Transformer derivations such as macros, job parameters and functions 
from a function list. &lt;/li&gt;
&lt;li&gt;FastTrack handles DataStage naming conventions.&amp;nbsp; FastTrack holds a
 set of rules for naming DataStage stages and links that you can 
configure to match your naming convention.&amp;nbsp; Normal DataStage development
 means dragging and dropping stages and links onto a canvas and renaming
 every one.&amp;nbsp; FastTrack does the naming for you. &lt;/li&gt;
&lt;li&gt;FastTrack lets you add the links for joins and lookups.&amp;nbsp; I don’t 
know if you’ve tried to map joins and lookups in Excel but it’s not 
pretty – you have room to map the extra columns but there is no easy way
 to show the key fields that join the two sources together.&amp;nbsp; Generally 
you make a note of it under the mapping.&amp;nbsp; In FastTrack you choose the 
join/lookup table, choose the key fields that do the join and bring in 
the extra columns for mapping to the output table and it generates the 
required stages in DataStage. &lt;/li&gt;
&lt;li&gt;FastTrack shows progress of mapping tasks.&amp;nbsp; Once you have created a
 mapping for all interfaces FastTrack will produce a report showing how 
much of each mapping has been finished saving you the time of tracking 
progress manually. &lt;/li&gt;
&lt;/ol&gt;
What FastTrack can do better.&lt;br /&gt;


&lt;ol&gt;
&lt;li&gt;Better bulk export and import functions – preferably XML and 
Excel.&amp;nbsp; Excel for when we produce documentation.&amp;nbsp; XML for when we want 
to back it up or move it between repositories.&amp;nbsp; (Or export, run a search
 and replace to globally rename a transform value and import it again). &lt;/li&gt;
&lt;li&gt;Global search and replace on transformation values, similar to the
 search and replace in the DataStage Transformer, for globally renaming 
things like function names and job parameter values. &lt;/li&gt;
&lt;li&gt;More DataStage stages – it currently lets you configure settings 
for Lookup, Join, Connectors and Transformers.&amp;nbsp; Would like to see 
Surrogate Key, Change Data Capture and Slowly Changing Dimension support
 – though it’s debatable whether those are business analyst functions 
for FastTrack or developer functions for DataStage.&amp;nbsp; It would be cool to
 define Type 1 Type 2 and key fields for dimension table mapping. &lt;/li&gt;
&lt;li&gt;Let you run Discover and Best Match on Business Glossary terms so you can find terms that suit the column name you are mapping. &lt;/li&gt;
&lt;li&gt;Discover transformation rules as well as mappings … oh hang on, that’s in the next release! &lt;/li&gt;
&lt;li&gt;Reverse engineer DataStage Server jobs so you can generate DataStage Enterprise jobs from a Server job mapping. &lt;/li&gt;
&lt;li&gt;More flexible licensing.&amp;nbsp; You buy licenses in packs of 10 – and that’s too many for a lot of customers! &lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/cirqbVrq-yw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/2900427785805204895/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/12/fasttrack-makes-your-datastage.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/2900427785805204895?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/2900427785805204895?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/cirqbVrq-yw/fasttrack-makes-your-datastage.html" title="FastTrack Makes Your DataStage Development Faster" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/12/fasttrack-makes-your-datastage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIHR3Y4cSp7ImA9WhRRFkU.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-7931925977547572243</id><published>2011-11-30T12:55:00.001-08:00</published><updated>2011-11-30T12:55:36.839-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T12:55:36.839-08:00</app:edited><title>IBM® InfoSphere™ Information Server 8.7</title><content type="html">&lt;div class="ibm-container ibm-alternate"&gt;
&lt;div class="ibm-container-body ibm-two-column"&gt;
IBM®
 InfoSphere™ Information Server 8.7 helps you take delivery of trusted 
information to the next level with a more comprehensive integration 
platform. New InfoSphere Information Server capabilities help strengthen
 collaboration between business and IT professionals to make it easier 
for strategic initiatives, such as business analytics, master data 
management, data warehousing, and application consolidation and 
migration projects, to utilize and act on trusted information. &lt;br /&gt;
IBM InfoSphere Information Server 8.7 helps you turn insight into actionable results by:  &lt;br /&gt;
&lt;ul class="ibm-bullet-list ibm-no-links"&gt;
&lt;li&gt;&lt;strong&gt;Capitalizing on productivity enhancements&lt;/strong&gt;&lt;br /&gt;Deliver
 better business results and reduce implementation time and cost by 
using new features that make sure your data integration platform is 
working for you.  Take advantage of new operational intelligence 
capabilities, smart management of metadata and metadata imports, and new
 parallel debugging capabilities that enhance developer productivity 
when working with partitioned data. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leveraging comprehensive information governance capabilities&lt;/strong&gt;&lt;br /&gt;Establish
 smarter, sustainable governance practices - including enriched data 
quality capabilities - that meet your business requirements and support 
consistent business outcomes. Gain more control when managing terms 
through a review and approval process, and increase your insight with 
holistic and personalized views of business terms, data models, assets, 
data flows and their relationships. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Harnessing the power of new and stronger integration&lt;/strong&gt;&lt;br /&gt;Promote
 collaboration and streamline the process of delivering enterprise 
business solutions through tight and deep metadata integration with key 
systems to take advantage of new opportunities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Using big data support to successfully address the most challenging data volumes in your business &lt;/strong&gt;&lt;br /&gt;Organizations
 are increasingly adopting big data tooling to address the most 
challenging data volumes in their business. As part of this release, 
InfoSphere Information Server 8.7 will support big data and Hadoop, 
enabling you to directly access big data on a distributed file system&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="ibm-container ibm-alternate"&gt;
&lt;div class="ibm-container-body ibm-two-column"&gt;
&lt;b&gt;Examples&lt;/b&gt; of the significant new integration capabilities delivered as part of InfoSphere Information Server 8.7 include:&lt;br /&gt;


&lt;ul class="ibm-bullet-list ibm-no-links"&gt;
&lt;li&gt;New Netezza connectivity is
 delivered as part of this release, via a Netezza Connector that 
provides native connectivity to the Netezza appliance and supports rapid
 loading of data to the appliance as well as balanced optimization, so 
you can easily determine and adjust where transformation will occur—in 
the source database using the high-performance InfoSphere DataStage 
engine, and/or in the target Netezza database(s).&lt;/li&gt;
&lt;li&gt;A new 
configuration option for the database connectivity layer of Information 
Server creates an audit log for any database operation directly into 
InfoSphere Guardium&lt;/li&gt;
&lt;li&gt;A new InfoSphere Change Data Capture stage, 
as well as expanded metadata capture with Data Replication/Change Data 
Delivery for end-to-end data lineage&lt;/li&gt;
&lt;li&gt;A new Teradata Connector TMSM and dual load support to help Teradata users better manage disaster recovery&lt;/li&gt;
&lt;li&gt;Advanced
 capabilities to identify, cleanse, and manage metadata for SAP projects
 help SAP project managers meet their go-live dates&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/tl2HK71Bk9w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/7931925977547572243/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/11/ibm-infosphere-information-server-87.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7931925977547572243?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7931925977547572243?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/tl2HK71Bk9w/ibm-infosphere-information-server-87.html" title="IBM® InfoSphere™ Information Server 8.7" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/11/ibm-infosphere-information-server-87.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUHR3w9cSp7ImA9WhRSFkk.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-1040528075344473740</id><published>2011-11-18T11:46:00.001-08:00</published><updated>2011-11-18T11:57:16.269-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T11:57:16.269-08:00</app:edited><title>Conversion error calling conversion routine date from string data may have been lost</title><content type="html">I have a file which has five columms. A field "pdate" is char data type 
which has date values (format ddmmyy eg 011008). This date value is need
 to be converted before loading into a target table in oracle 10g.
&lt;br /&gt;
I have used the converion function StringToDate(ln_TTS_DelvyDate_in.pu_date,"%dd-%mm-%yy") to convert the char value into date.
&lt;br /&gt;
. 
&lt;br /&gt;
&lt;br /&gt;
The job is: Seq file---&amp;gt;TRANSFORMER----&amp;gt;SeqFile
&lt;br /&gt;
&lt;br /&gt;
When I'm executing this job it gives the following error: 
&lt;br /&gt;
&lt;br /&gt;
Tr_Split,1: Conversion error calling conversion routine date_from_string data may have been lost
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the output file
&lt;br /&gt;
The "pudate" has '*******' being propagated. 
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The input date column will not have null values.
&lt;br /&gt;
&lt;br /&gt;
Input Data- Char data type
&lt;br /&gt;
&lt;br /&gt;
011008
&lt;br /&gt;
&lt;br /&gt;
Output Data - date data type&lt;br /&gt;
&lt;br /&gt;
******&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td colspan="2"&gt;&lt;br /&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td colspan="2"&gt;&lt;br /&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td colspan="2"&gt;&lt;br /&gt;&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td colspan="2"&gt;Solution::::&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
        &lt;td colspan="2"&gt;&lt;span class="gensmall"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/td&gt;
    &lt;/tr&gt;
&lt;tr&gt;
&lt;td class="postbody" valign="top"&gt;The conversion function should not have hyphens as your data doesn't have it.
&lt;br /&gt;
&lt;br /&gt;
StringToDate(ln_TTS_DelvyDate_in.pu_date,"%dd%mm%yy") 
&lt;br /&gt;
&lt;br /&gt;
should work.&lt;br /&gt;
&lt;br /&gt;
or &amp;nbsp; This warning will also occurs if data itself contains junk data that does not support the required format even though conversion function  StringToDate(ln_TTS_DelvyDate_in.pu_date,"%dd%mm%yy") is present. Best case is replace the source file which does not have junk data. &lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/1g1ZKybMSuI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/1040528075344473740/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/11/conversion-error-calling-conversion.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1040528075344473740?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1040528075344473740?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/1g1ZKybMSuI/conversion-error-calling-conversion.html" title="Conversion error calling conversion routine date from string data may have been lost" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/11/conversion-error-calling-conversion.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAHSH07eCp7ImA9WhRSFk4.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-4900087609915968777</id><published>2011-11-18T09:17:00.001-08:00</published><updated>2011-11-18T09:18:59.300-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-18T09:18:59.300-08:00</app:edited><title>TNS entry error when trying to connect to a database using DS in order to import the table definition?</title><content type="html">This usually indicates that either the DataStage userid running the job does not 
have read access to the Oracle run-time client files, or that the environment 
variable ORACLE_HOME is not defined.&lt;b&gt; &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ORA-12154: TNS:could not resolve service name&lt;/b&gt; &lt;br /&gt;

The above &amp;nbsp;error indicate that the connection identifier or service name 
specified in the DataStage job (or in the ORACLE_SID environment variable or 
ODBC definition) was not known to either the Oracle client or the Oracle server. 
The connection/service identifiers known to the Oracle run-time client are 
defined in the tnsnames.ora file, $ORACLE_HOME/network/admin/tnsnames.ora 
&lt;br /&gt;

Verify that the identifier specified for the failing Oracle connection has 
been defined in tnsnames.ora. If it is correctly defined, then next verify that 
the ORACLE_HOME environment variable is correctly defined, and that tnsnames.ora 
file has correct read permissions. &lt;br /&gt;

If the above items are configured correctly, also check the listener.log on 
Oracle server to confirm that the service id (or the database it maps to) are 
known to the Oracle server. &lt;br /&gt;

&lt;b&gt;Setting up environment variables required to use Oracle run-time 
client&lt;/b&gt;&lt;br /&gt;The Oracle client requires that the following environment 
variables be defined. These should be set in the .dsenv file in the DataStage 
DSEngine directory. &lt;br /&gt;&lt;br /&gt;ORACLE_HOME=/home/oracle 
&lt;br /&gt;LIBPATH=$LIBPATH:$ORACLE_HOME/lib:&lt;br /&gt;PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;&lt;br /&gt;Change 
the path defined for ORACLE_HOME to the correct path for your system. 
ORACLE_HOME should be set to the absolute path to the home Oracle directory 
which is the directory level directly above the lib and bin directories. 
&lt;br /&gt;&lt;br /&gt;Please also note that the name of the library path environment variable 
varies with different operating systems: &lt;br /&gt;

&lt;ul type="disc"&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"&gt;AIX 
- use LIBPATH 
&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"&gt;Solaris 
- use LD_LIBRARY_PATH 
&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"&gt;HP-UX 
- use SHLIB_PATH 
&lt;/li&gt;
&lt;li class="MsoNormal" style="mso-list: l1 level1 lfo3; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;"&gt;Linux 
- use LD_LIBRARY_PATH &lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/h6ouBxoC4dQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/4900087609915968777/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/11/tns-entry-error-when-trying-to-connect.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4900087609915968777?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4900087609915968777?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/h6ouBxoC4dQ/tns-entry-error-when-trying-to-connect.html" title="TNS entry error when trying to connect to a database using DS in order to import the table definition?" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/11/tns-entry-error-when-trying-to-connect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8BRX4-fCp7ImA9WhRTEk0.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-1878568218319522463</id><published>2011-11-01T20:00:00.001-07:00</published><updated>2011-11-01T20:00:54.054-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-01T20:00:54.054-07:00</app:edited><title>Parallel job: Retrieve sql codes on a failed upsert</title><content type="html">&lt;h1 class="size17 bold anthracite"&gt;
Parallel job: Retrieve sql codes on a failed upsert&amp;nbsp;


&lt;a href="" name="Introduction"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;h2&gt;
 &lt;span class="size15 bold anthracite"&gt;Introduction&lt;/span&gt;&lt;/h2&gt;
When an enterprise database stage such as DB2 or Oracle is set to 
upsert it is possible to create a reject link to trap rows that fail any
 update or insert statements. By default this reject link holds just the
 columns written to the stage, they do not show any columns indicating 
why the row was rejected and often no warnings or error messages appear 
in the job log. 
&lt;br /&gt;


&lt;a href="" name="Steps"&gt;&lt;/a&gt;&lt;h2&gt;
 &lt;span class="size15 bold anthracite"&gt;Steps&lt;/span&gt;&lt;/h2&gt;
There is an undocumented feature in the DB2 and Oracle enterprise 
stage where a reject link out of the stage will carry two new fields, 
sqlstate and sqlcode. These hold the return codes from the RDBMS engine 
for failed upsert transactions. The fields are called sqlstate and 
sqlcode. 
&lt;br /&gt;
To see these values add a peek to your reject link, the sqlstate 
and sqlcode should turn up for each rejected row in the job log. To trap
 these values add a copy stage to your reject link, add sqlstate and 
sqlcode to the list of output columns, on the output columns tab check 
the "Runtime column propagation" check box, this will turn your two new 
columns from invalid red columns to black and let your job compile. If 
you do not see this check box use the Administrator tool to turn on 
column propagation for your project. 
&lt;br /&gt;
When the job runs and a RDBMS reject occurs the record is sent 
down the reject link, two new columns are propagated down that link and 
are defined by the copy stage and can then be written out to an error 
handling table or file. 
&lt;br /&gt;
If you do not want to turn on column propagation for your project
 you can still define the two new columns with a Modify stage by 
creating them in two specifications. sqlcode=sqlcode and 
sqlstate=sqlstate. Despite column propagation being turned off the 
Modify stage will still find the two columns on the input link and use 
the specification to add them to the output schema.
&lt;br /&gt;


&lt;a href="" name="Examples"&gt;&lt;/a&gt;&lt;h2&gt;
 &lt;span class="size15 bold anthracite"&gt;Examples&lt;/span&gt;&lt;/h2&gt;
Oracle 
By default, oraupsert produces no output data set. By using the -reject 
option, you can specify an optional output data set containing the 
records that fail to be inserted or updated. It’s syntax is: 
-reject filename 
For a failed insert record, these sqlcodes cause the record to be 
transferred to 
your reject dataset: 
-1400: cannot insert NULL 
-1401: inserted value too large for column 
-1438: value larger than specified precision allows for this column 
-1480: trailing null missing from string bind value 
&lt;br /&gt;
For a failed update record, these sqlcodes cause the record to be transferred to 
your reject dataset: 
-1: unique constraint violation 
-1401: inserted value too large for column 
-1403: update record not found 
-1407: cannot update to null 
-1438: value larger than specified precision allows for this column 
-1480: trailing null missing from string bind value 
An insert record that fails because of a unique constraint violation (sqlcode 
of -1) is used for updating. 
&lt;br /&gt;
DB2 
When you specify the -reject option, any update record that receives a 
status of SQL_PARAM_ERROR is written to your reject data set. It’s 
syntax is: 
-reject filename 
&lt;br /&gt;


&lt;a href="" name="Conclusion"&gt;&lt;/a&gt;&lt;h2&gt;
 &lt;span class="size15 bold anthracite"&gt;Conclusion&lt;/span&gt;&lt;/h2&gt;
Always place a reject link on a Database stage that performs an 
upsert.  There is no other way to trap rows that fail that upsert 
statement.
&lt;br /&gt;
For other database actions such as load or import a different method of trapping rejects and messages is required.&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/vEBGJFd0sDg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/1878568218319522463/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/11/parallel-job-retrieve-sql-codes-on.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1878568218319522463?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1878568218319522463?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/vEBGJFd0sDg/parallel-job-retrieve-sql-codes-on.html" title="Parallel job: Retrieve sql codes on a failed upsert" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/11/parallel-job-retrieve-sql-codes-on.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYCRXs_cCp7ImA9WhdaEk8.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-5253017496348381050</id><published>2011-10-21T12:56:00.000-07:00</published><updated>2011-10-21T12:59:24.548-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T12:59:24.548-07:00</app:edited><title>AutoSys Cheatsheet</title><content type="html">&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;h2 style="font-family: times new roman; text-align: justify;"&gt;
&lt;br /&gt;                                        &lt;/h2&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;AutoSys: UNIX&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Cd to the "autouser" ($AUTOUSER) directory and "." (or source) the "ksh" file. Ex: "&lt;b&gt;. ./autosys.ksh.machine&lt;/b&gt;" After installing AutoSys, first make sure that the DB is up and running. Check the installation by running the command &lt;b&gt;chk_auto_up&lt;/b&gt; to verify connection to the DB and event processor.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Enter the KEYS through "&lt;b&gt;gatekeeper&lt;/b&gt;", add keys&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Run the "&lt;b&gt;autosys_secure&lt;/b&gt;" command to set the AutoSys Edit and Exec Super users (and also to enter NT users/passwords)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Start the Event Processor by running the command "&lt;b&gt;eventor&lt;/b&gt;"&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Shutdown AutoSys: "&lt;b&gt;sendevent -E STOP_DEMON&lt;/b&gt;"&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: times new roman; text-align: justify;"&gt;
To start the AutoSys GUI set your DISPLAY and run the command "&lt;b&gt;autosc &amp;amp;&lt;/b&gt;". &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;NT:&lt;/b&gt; Start AutoSys from start-&amp;gt;programs-&amp;gt;AutoSys-&amp;gt; administrator -&amp;gt;Graphical User Interface -&amp;gt;Command Prompt&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;Command Line Commands:&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
1.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;gatekeeper&lt;/b&gt;: Allows you to enter the License Keys which allow you to run AutoSys.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
2.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;eventor [-M&lt;/b&gt; machine_name] : Starts the event processor. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
3.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;autorep&lt;/b&gt; -J [ALL | Job_name] [-q] [&amp;gt; file_name], -d (detail), -r (run number), -o (override), jil &amp;lt; file_na -G (global var report), -M -q for machine definitions.&lt;br /&gt;Ex: autorep -J job_name -d&lt;br /&gt;    autorep -J job_name -d&lt;br /&gt;    autorep -J job_name -q &amp;gt; file_name queries the DB &amp;amp; save job Dfn. Into a file&lt;br /&gt;      vi file_name&lt;br /&gt;      When you want a report of a box use the -L0 option&lt;br /&gt;      Autorep -J job_name -l1 report on the job for the day -1 (prev day)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
4.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;sendevent&lt;/b&gt; -E &lt;b&gt;STARTJOB&lt;/b&gt; -J job_name, sendevent -E &lt;b&gt;FORCE_STARTJOB&lt;/b&gt; -J job_name, [JOB_ON_ICE, &lt;b&gt;JOB&lt;/b&gt;_OFF_ICE, JOB_ON_HOLD, JOB_OFF_HOLD, SET_GLOBAL, &lt;b&gt;STOP_DEMON&lt;/b&gt;. . . .]&lt;br /&gt;&lt;b&gt;sendevent -E STOP_DEMON&lt;/b&gt; - to stop AutoSys&lt;br /&gt;   (ex: sendevent -E SET_GLOBAL -G "var_name=/home/mydir" to set a var)&lt;br /&gt;   (ex: sendevent -E SET_GLOBAL -G "var_name=DELETE" to delete a var)]&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
5.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;chk_auto_up&lt;/b&gt;: checks to see if event processor and the DB are both up.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
6.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;autoping&lt;/b&gt; -m machine: verify that both client &amp;amp; server are correctly configured.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
7.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;cron2jil&lt;/b&gt; -f cronfile [-d outdir] [-I incl_file] [-m machine] [-p prefix]&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
8.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;jil&lt;/b&gt; &lt;cr&gt;&lt;br /&gt;To insert a job directly into the DB&lt;br /&gt;insert_job: job.id job_type: c&lt;br /&gt;machine: machine_name&lt;br /&gt;command: echo testing jil&lt;br /&gt;[go | ;] (depending on the DB you are using)&lt;br /&gt;Template example: &lt;/cr&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify;"&gt;
/* ----------------- template ----------------- */&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify;"&gt;
insert_job: template job_type: c&lt;br /&gt;box_name: box1&lt;br /&gt;command: ls -l&lt;br /&gt;machine: localhost&lt;br /&gt;owner: lyota01@TANT-A01&lt;br /&gt;permission: gx,ge,wx,we,mx,me&lt;br /&gt;date_conditions: 1&lt;br /&gt;days_of_week: all&lt;br /&gt;start_times: "15:00, 14:00"&lt;br /&gt;run_window: "14:00 - 6:00"&lt;br /&gt;condition: s (job1)&lt;br /&gt;description: "description field"&lt;br /&gt;n_retrys: 12&lt;br /&gt;term_run_time: 60&lt;br /&gt;box_terminator: 1&lt;br /&gt;job_terminator: 1&lt;br /&gt;std_out_file: /tmp/std_out&lt;br /&gt;std_err_file: /tmp/std_err&lt;br /&gt;min_run_alarm: 5&lt;br /&gt;max_run_alarm: 10&lt;br /&gt;alarm_if_fail: 1&lt;br /&gt;max_exit_success: 2&lt;br /&gt;chk_files: /tmp 2000&lt;br /&gt;profile: /tmp/.profile&lt;br /&gt;job_load: 25&lt;br /&gt;priority: 1&lt;br /&gt;auto_delete: 12&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
9.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;      &lt;/span&gt;&lt;b&gt;autosyslog&lt;/b&gt; -e: same as tail -f autosys_log_file. This command must be run from the machine where the server resides if used with the -e option. Else it can be used with the -J option to see that job's run log.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
10.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;job_depends&lt;/b&gt;: -[c|d|t] -J jobname [-F "mm/dd/yy time"] [-T "mm/dd/yy time"] (Note: It will only print out the first occurrence found)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
11.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;monbro -n&lt;/b&gt; monitor_name: Allows you to run from command line monitor/browser programs previously created using the monitor/browser GUI.exec superuser: AUTOSYS superuser&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
12.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autocal_asc&lt;/b&gt; full_cal_name: prints, adds &amp;amp; deletes custom calendar definitions.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
13.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autostatus&lt;/b&gt;: Reports the current status of a specific job, or the value of an AutoSys global variable. Ex: autostatus -J job_name, -S instance&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
14.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autotimezone&lt;/b&gt; -l : Allows additions, deletions, and queries to the timezones table (-l provides list).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
15.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autotrack&lt;/b&gt;: Tracks &amp;amp; report changes to the AutoSys DB. Ex: autotrack -l 2 (level 2) [sets the tracking level] autotrack -U sys -v (user sys: verbose) To start using the autotrack utility type: autotrack -u to set tracking level 1 or 2. By default it is set to 0. Autotrack -l will list the current tracking level. Options -[J, U, m, F, T, and t] are to request reporting on a specific Job, User, machine, time window (-F -T), and event type (t). Type is used in conjunction w/other parameters. autotrack w/no arguments retrieves information an all events omitting detail. -v option is for verbose. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
16.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autosys_secure&lt;/b&gt;: to change edit, exec superusers, change DB passwd, change remote authentication method.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
17.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;chase&lt;/b&gt; [-A|E]: Makes sure that jobs claiming to be running in the client machine are running. The "-E" option restarts the job.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
18.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;archive_events&lt;/b&gt;: to archive events in the DB which are older than x days to prev DB from becoming full. &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
19.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;clean_files&lt;/b&gt;: Deletes old remote agent log files. It does it by searching the DB for all machines which have had jobs started on them.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
20.&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;  &lt;/span&gt;&lt;b&gt;autostatad&lt;/b&gt;: to get the status of a PeopleSoft job. You can define one of the user definable buttons to view PeopleSoft job: Autocons*userButton1Label: Adapter Status&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;User definable buttons:&lt;/u&gt;&lt;/b&gt; There are user definable buttons in the operator's console.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
How to configure: &lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Autocons*userButton1Command: /autosys/bin/autostatad -J $JOB -g &amp;amp; (which allows you to have a command button on the operator's console.)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Dependencies:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;success&lt;/b&gt; (job) and s(job_b)&lt;br /&gt;&lt;b&gt;failure&lt;/b&gt;(job_a) or f (job_b)&lt;br /&gt;&lt;b&gt;notrunning&lt;/b&gt; (job)&lt;br /&gt;&lt;b&gt;terminated&lt;/b&gt;(job)&lt;br /&gt;&lt;b&gt;exitcode&lt;/b&gt;(job) &amp;gt; 5 and exitcode(job_b) != 10&lt;br /&gt;&lt;b&gt;value&lt;/b&gt;(global_name)=100&lt;br /&gt;&lt;b&gt;done&lt;/b&gt;(job)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;Hostscape&lt;/b&gt;: Schedule a job to run every x minutes &amp;amp; then go into forecasting. Make that job fail.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;Solid black line: Hostscape can communicate with the remote agent in the client machine.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;Solid red line: Hostscape can't communicate with the remote agent but it can communicate with the internet daemon (inetd) running on that machine..&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;Dashed red line: Hostscape can't communicate with the client machine at all. Client is probably down.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;Accessing a variable name: &lt;b&gt;$$GLOBAL_VAR_NAME&lt;/b&gt; (unless used in dependency condition with a job definition. If used in the "command" field, you must use the $$)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Tunable Parameters:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;$AUTOUSER/config.ACE&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;$AUTOUSER/autosys.ksh.xxx&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;/etc/auto.profile&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;/etc/inetd.conf&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;/etc/services&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Notify.Ace:&lt;/u&gt;&lt;/b&gt; The alarms to notify on are:&lt;br /&gt;(There is an example in $AUTOSYS/install/data/Notify.Ace).&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;DB_ROLLOVER&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;DB_PROBLEM&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;EP_HIGH_AVAILABILITY&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;EP_ROLLOVER&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;EP_SHUTDOWN&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Where to go to find the Errors:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;i&gt;$AUTOUSER/out/event_demon.$AUTOSERV&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;br /&gt;($AUTOUSER/out/event_demon.ACE)&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;i&gt;Output from the job definition output &amp;amp; error files&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;i&gt;/tmp files created for job_run at client machine&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;i&gt;$AUTOSYS&lt;/i&gt;&lt;/b&gt;&lt;i&gt;/out/DBMaint.out for DB problems&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;i&gt;$SYBASE&lt;/i&gt;&lt;/b&gt;&lt;i&gt;/install/errorlog_$DSQUERY when event server will not start.&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"&gt;
&lt;span style="font-size: 10pt;"&gt;·&lt;span style="-moz-font-feature-settings: normal; -moz-font-language-override: normal; font-size-adjust: none; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;i&gt;NT&lt;/i&gt;&lt;/b&gt;&lt;i&gt;: AutoNuTc\lib/X11\app-defaults\xpert&lt;/i&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;AutoSys Maintenance: DBMaint @$AUTOSYS/bin&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Once a day the Database goes into a maintenance cycle. Every day at 3:00am it runs a program called &lt;b&gt;DBMaint&lt;/b&gt;. This is user configurable. The program runs DBstatistics which is found in $AUTOSYS/bin.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;app-defaults&lt;/b&gt; file: /usr/openwin/lib/app-defaults directory. Autocons, Xpert, etc.. ( or: /usr/lib/X11/app-defaults, /autosys/bin/X11/app-defaults)&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Environment file: /etc./auto.profile&lt;br /&gt;C programs: $AUTOSYS/code&lt;br /&gt;Where to change AutoSys screen fonts: /usr/openwin/lib/app-defaults&lt;br /&gt;Where to look for troubleshooting: Chapter 15&lt;br /&gt;Summary of commands: Appendix C&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;$AUTO_JOB_NAME:&lt;/b&gt; when naming a file dynamically using as prefix AutoSys's job name.&lt;br /&gt;&lt;b&gt;$AUTORUN:&lt;/b&gt; unique identifier for the run of that job&lt;br /&gt;&lt;b&gt;$AUTOPID:&lt;/b&gt; unique identifier for that job's run number (PID)&lt;br /&gt;&lt;b&gt;$JOID:&lt;/b&gt; DB identifier for a job. To extract from the DB: select joid from job where job_name=" "&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Creating a Virtual Machine: &lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
insert_machine: virtual&lt;br /&gt;type: v /* default, not required */&lt;br /&gt;machine: real_1&lt;br /&gt;machine: real_2&lt;br /&gt;max_load: 100&lt;br /&gt;factor: 0.5 /* used to describe the relative processing power of a machine. Usually between 0.0-1.0*/&lt;br /&gt;machine: real_2&lt;br /&gt;max_load: 60 /* this is designed to limit the loading of a machine */&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Load Balancing, Queuing, priorities:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
insert_job: test_load&lt;br /&gt;machine: localhost&lt;br /&gt;command: echo "Test load balancing"&lt;br /&gt;job_load: 50&lt;br /&gt;priority: 1 /* this only affects queues */&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Note: For 5.0 we will be using information from ServerVision's towards our load balancer which is composed of 26 categories such as i/o usage, disk usage, CPU usage, etc.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Testing:&lt;br /&gt;zql&lt;br /&gt;zql -U autosys -P autosys&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;NOTES:&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
When a job is stuck in the starting condition this means that the event processor communicated with the remote agent and passed all the information the remote agent ran the job but was not able to communicate to the DB. Once testing is done with AutoSys one should change the default refresh interval for AutoSys. This is so there is less querying to the DB. When AutoSys goes from dual mode to single mode, always run the autobcp command before bringing AutoSys back to dual mode/High Availability. Default behavior for stdout is to always appends. If you want to overwrite the file enter the following, no spaces: "&amp;gt;file.out"&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Box Logic&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Use boxes to group jobs with like scheduling parameters, not as means of grouping jobs organizationally. For example, if you have a number of jobs that run daily at 1:00 a.m., you could put all these jobs in a box and assigning a daily start condition to the box. However, a variety of account processing jobs with diverse starting conditions should not be grouped in the same box.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Default Box Job Behavior&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Some important rules to remember about boxes are:&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;ul style="font-family: times new roman; text-align: justify;" type="disc"&gt;
&lt;li class="MsoNormal"&gt;Jobs run only once per box      execution.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Jobs in a box will start only      if the box itself is running.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;As long as any job in a box      is running, the box remains in RUNNING state; the box cannot complete      until all jobs have run.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;By default, a box will return      a status of SUCCESS only when all the jobs in the box have run and the      status of all the jobs is "success." Default SUCCESS is      described in Default Box Success and Box Failure on page 5-13.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;By default, a box will return      a status of FAILURE only when all jobs in the box have run and the status      of one or more of the jobs is "failure." Default FAILURE is      described in Default Box Success and Box Failure on page 5-13.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Unless otherwise specified, a      box will run indefinitely until it reaches a status of SUCCESS or FAILURE.      For a description of how to override this behavior, see Box Job Attributes      and Terminators on page 5-6.&lt;/li&gt;
&lt;li class="MsoNormal"&gt;Changing the state of a box      to INACTIVE (via the sendevent command) changes the state of all the jobs      in the box to INACTIVE.&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;When you Should Not Use a Box&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
The fact that all jobs in a box change status when a box starts running has lead some to use boxes to implement "job cycle" behavior. Be aware that placing jobs in a box to achieve this end may bring with it undesired behavior due to the nature of boxes.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Avoid the temptation to put jobs in a box as a short cut for performing events (such as ON_ICE or ON_HOLD) on a large number of jobs at once. You will most likely find that the default behavior of boxes inhibits the expected execution of the jobs you placed in the box.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Likewise, you should not place jobs in a box solely because you want to run reports on all of them. When you run autorep on a box, you will get a report on the box and all the jobs in the box (unless you use the -L0 option). In addition, if you use wildcarding when specifying a job name, you could get duplicate entries in your report. For example, suppose you have a box named "acnt_box" containing three jobs named "acnt_job1", "acnt_job2", and "daily_rep". If you specify acnt% as the job name for the autorep report, the report will have an entry for the box "acnt_box" and an entry for each job in the box. Then autorep will continue searching for all job names matching the wildcard characters and, thus, will list "acnt_job1" and "acnt_job2" a second time.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;What Happens when a Box Runs&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
As soon as a box starts running, all the jobs in the box (including sub-boxes) change to status ACTIVATED, meaning they are eligible to run. (Because of this, jobs in boxes do not retain their statuses from previous box cycles.) Then each job is analyzed for additional starting conditions. All jobs with no additional starting conditions are started, without any implied ordering or prioritizing. Jobs with additional starting conditions remain in the ACTIVATED state until those additional dependencies have been met. The box remains in the RUNNING state as long as there are activated or running jobs in the box.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
If a box is terminated before a job in it was able to start, the status of that job will change directly from ACTIVATED to INACTIVE.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;Note o Jobs in a box cannot start unless the box is running. However, once the job starts running, it will continue to run even if the box is later stopped for some reason.&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;Time Conditions in a Box&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
Each job in a box will run only once per box execution. Therefore, you should not define more than one time attribute for any job in a box because the job will only run the first time. If you want to put a job in a box, but you also want it to run more than once, you must assign multiple start time conditions to the box itself, and define no time conditions for the job. Remember also that the box must be running before the job can start. Do not assign a start time for a job in a box if the box will not be running at that time. If you do, the next time the box starts the job will start immediately.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
The following example illustrates a scenario that would not work properly if placed in a box.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
"job_a" is defined to run repeatedly until it succeeds. "job_report" has one starting condition-the success of "job_a".&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
&lt;b&gt;&lt;u&gt;How Job Status Changes Affect Box Status&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
If a box that is not running contains a job that changes status, as a result of a FORCE_STARTJOB or CHANGE_STATUS event, the new job status could change the status of its container box. A change of status of the box could trigger the start of downstream jobs that are dependent on the box.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div style="font-family: times new roman; text-align: justify;"&gt;
If a box contained only one job, and the job changed status, the box status would change.&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: times new roman; text-align: justify;"&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/kItOTa-dC_4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/5253017496348381050/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/10/autosys-cheatsheet.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/5253017496348381050?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/5253017496348381050?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/kItOTa-dC_4/autosys-cheatsheet.html" title="AutoSys Cheatsheet" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/10/autosys-cheatsheet.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DR3s5eip7ImA9WhdVF0g.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-3778730930784482286</id><published>2011-09-22T23:38:00.001-07:00</published><updated>2011-09-22T23:39:36.522-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T23:39:36.522-07:00</app:edited><title /><content type="html">&lt;a href="http://www.youtube.com/watch?v=_bOhlzE4MTU&amp;feature=related" class="floatbox data-fb-options="width:1040 height:885"&gt;AUTOSYS&lt;/a&gt;




&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/ZOiaoZ0D46Y" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/3778730930784482286/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/autosys.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/3778730930784482286?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/3778730930784482286?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/ZOiaoZ0D46Y/autosys.html" title="" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/autosys.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4NSHk4eip7ImA9WhdVF0g.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-6062926330514757739</id><published>2011-09-22T22:57:00.000-07:00</published><updated>2011-09-22T23:06:39.732-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T23:06:39.732-07:00</app:edited><title>The DataStage 8.5 Job Migration Assistant Makes Upgrading, Testing and Deployment Easier</title><content type="html">&lt;div class="spacer blog-content content-entryindent blog-content-mce"&gt;

        IBM have released a tool that makes product upgrades and 
environment management and job deployment and regression testing easier.&lt;br /&gt;

This is more than a Migration Assistant, it is useful for migrating 
between DataStage versions but it is also useful for migrating DataStage
 jobs from a development environment to testing and production.&amp;nbsp; It is 
useful for managing duplicate versions of jobs, executing test plans or 
job documentation.&lt;br /&gt;

&lt;br /&gt;

The DataStage Migration Assistant can be &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg24028909" target="_blank"&gt;downloaded here&lt;/a&gt; and according to the support website:&lt;br /&gt;

&lt;blockquote&gt;

The Job Migration Test Assistant tool is a web-based application 
which assists in migration of DataStage projects from previous releases 
into the 8.5 release. The Job Migration Test Assistant can compare the 
status of DataStage jobs or sequences between the older version and the 
newer version, and perform difference analysis including job level or 
table schema level checks. Reports can be genrated based on anomalies in
 the data between the versions.&lt;br /&gt;

&lt;br /&gt;

&lt;/blockquote&gt;
It is downloaded through the IBM Fix Central website which means 
anyone can access it.&amp;nbsp; There is a catch – the product requires a DB2 
repository and it comes with a JMTA_DDL_DB2.sql script.&amp;nbsp; Information 
Server can store its repository on DB2, SQL Server or Oracle so there 
will be some sites out there without DB2.&amp;nbsp; You can use the free express 
version of DB2 or the version that comes bundled with Information 
Server.&lt;br /&gt;

It comes with a couple prerequisites – two interim fixes for Information Server 8.5.&lt;br /&gt;

&lt;br /&gt;

&lt;strong&gt;Migration Assistant for Upgrades&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;

Here is a screenshot of the DataStage job overview showing jobs in 
the new environment of various statuses – Failed, Not Completed, 
Compiled, Ran Successfully and Ran with Warnings.&amp;nbsp; It has another graph 
for the new environment – Missing and New.&lt;br /&gt;

&lt;br /&gt;

&lt;a href="http://www.flickr.com/photos/29986804@N08/5393533088/" target="_blank" title="DataStage Migration Assistant"&gt;&lt;img alt="DataStage Migration Assistant" border="0" src="http://static.flickr.com/5094/5393533088_e61410c05d.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

&lt;strong&gt;Migration Assistant for Environment Management&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;

There is a lot more to the product than just upgrading DataStage.&amp;nbsp; 
The Migration Assistant can help to migrate between environments on the 
same version – for example synchronising your development, test and 
production environments.&amp;nbsp; Finding duplicate jobs between projects and 
merging them.&lt;br /&gt;

&lt;br /&gt;

There is a tree for comparing objects between environments and comparing DataStage jobs:&lt;br /&gt;

&lt;br /&gt;

&lt;a href="http://www.flickr.com/photos/29986804@N08/5393552904/" target="_blank" title="DataStage Migration Assistant Job Compare"&gt;&lt;img alt="DataStage Migration Assistant Job Compare" border="0" src="http://static.flickr.com/5014/5393552904_2ca4f2227c.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

&lt;strong&gt;Migration Assistant for Testing&lt;/strong&gt;&lt;br /&gt;

&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;

The Migration Assistant has some functions to help unit test an 
environment upgrade.&amp;nbsp; These same test functions can help for any type of
 DataStage testing – you can keep using the Migration Assistant as part 
of your standard test plan.&amp;nbsp; You can compare a release of DataStage jobs
 with the previous release by comparing a UAT test environment to a 
production environment, or by comparing a test environment to a test 
baseline environment.&amp;nbsp; With regression testing the baseline you are 
comparing against needs to be similar to the new set of jobs being 
tested.&lt;br /&gt;

&lt;br /&gt;

It provides a regression testing check – the ability to find any link
 in any job that has a row count that is different to the regression 
test baseline.&lt;br /&gt;

&lt;br /&gt;

&lt;a href="http://www.flickr.com/photos/29986804@N08/5393566866/" target="_blank" title="DataStage Migration Assistant Testing"&gt;&lt;img alt="DataStage Migration Assistant Testing" border="0" src="http://static.flickr.com/5172/5393566866_c260591b53.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;

&lt;br /&gt;

Another regression testing feature is the log compare – this will 
compare all the logs for one environment against the logs in another 
environment to try and find something that is different in a DataStage 
job – such as a new warning, or an abort or unusual information 
messages.&amp;nbsp; There is currently no other feature in any Information Server
 product that lets you compare DataStage log messages.&lt;br /&gt;

    &lt;/div&gt;
&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/iwzUtTpz-Ug" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/6062926330514757739/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/datastage-85-job-migration-assistant.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/6062926330514757739?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/6062926330514757739?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/iwzUtTpz-Ug/datastage-85-job-migration-assistant.html" title="The DataStage 8.5 Job Migration Assistant Makes Upgrading, Testing and Deployment Easier" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/datastage-85-job-migration-assistant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQEQn8yeyp7ImA9WhdVF0g.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-8091710691002814887</id><published>2011-09-22T21:45:00.000-07:00</published><updated>2011-09-22T21:48:23.193-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T21:48:23.193-07:00</app:edited><title /><content type="html">&lt;a href="http://www.redbooks.ibm.com/redbooks/pdfs/sg247576.pdf" class="floatbox" data-fb-options="caption:href enableDragResize:true"&gt;IBM InfoSphere DataStage Data Flow and Job Design&lt;/a&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/BuYMxjx05KM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/8091710691002814887/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/ibm-infosphere-datastage-data-flow-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8091710691002814887?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8091710691002814887?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/BuYMxjx05KM/ibm-infosphere-datastage-data-flow-and.html" title="" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/ibm-infosphere-datastage-data-flow-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEEMSXcyfyp7ImA9WhdVF0g.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-4367657809520027034</id><published>2011-09-22T21:28:00.000-07:00</published><updated>2011-09-22T21:38:08.997-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T21:38:08.997-07:00</app:edited><title /><content type="html">&lt;a href="http://www.youtube.com/watch?v=yMl9dPH0qBA" class="floatbox data-fb-options="width:640 height:385"&gt;Datastage Installation&lt;/a&gt;




&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/fZO5WqV-E88" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/4367657809520027034/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/speed.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4367657809520027034?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4367657809520027034?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/fZO5WqV-E88/speed.html" title="" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/speed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MR3cyeSp7ImA9WhdVF0g.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-1028000388869448474</id><published>2011-09-16T06:46:00.000-07:00</published><updated>2011-09-22T22:49:46.991-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-22T22:49:46.991-07:00</app:edited><title>DataStage 8.1 to DataStage 8.5</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; 1. DataStage Designer performance improvement  By changing the Metadata algorythm, copy/delete/save jobs got faster  about 30-40%.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;2. Parallel Engine Performance and Resource improvements  Resource usage is about 5% smaller than 8.1, for T-Sort, Windows  desktop heap size has been decreased 94%.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; 3. Transformer enhancements  Key break support&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; LastRowInGroup() function is added. This will  return true for the last record of the group.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  LastRow() will return the last record of  input.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; Output looping :: Allows multiple output records to be created per  single input record.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; Input looping &amp;nbsp;&amp;nbsp; :: Allows aggregation of input records so that  aggregated data can be included with the original input data.  ( like adding average column to the original input is now  possible. ( 2 pass.... calculation. )&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  New Null handling This is pretty complicate and need more  verification by myself to explain clearly. But this is the description I  got.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  Null values can now be included in any expression.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -&amp;gt; Null values no longer need to be explicitly handled.&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A null value in an expression will return a null value  result.  As long as the target column is nullable, records will  not be dropped.  Stage variables are now always nullable.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;APT_TRANSFORM_COMPILE_OLD_NULL_HANDLING is prepared to support  backward compatibility.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; New Transformer Functions&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; Create/offset a time, date or timestamp from component arguments&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; DateFromComponents(int32 years, int32 months, int32 dayofmonth)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  DateOffsetByComponents(date basedate, int32 yearoffset, int32 monthoffset,  int32 dayoffset)  DateOffsetByDays(date basedate, int32 offset)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  TimeFromComponents(int32 hours, int32 minutes, int32 seconds, int32  microseconds)  TimeOffsetByComponents(time basetime, int32 houroffset, int32  minuteoffset, dfloat secondoffset)  TimeOffsetBySeconds(time basetime, dfloat secondoffset)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  TimestampOffsetByComponents(timestamp basetimestamp, int32 yearoffset,  int32 monthoffset, int32 dayoffset, int32 houroffset, int32 minuteoffset,  dfloat secondoffset)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  TimestampOffsetBySeconds(timestamp basetimestamp, dfloat secondoffset)&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; Various packed decimal conversions&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;DecimalToDate(decimal basedecimal [,string format] )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;DecimalToTime(decimal basedecimal [,string format] )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt; DecimalToTimestamp(decimal basedecimal [,string format] )&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  DateToDecimal(date basedate [,string format] )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;TimeToDecimal(time basetime [,string format] )&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;TimestampToDecimal(timestamp basetimestamp [,string format] )&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;   4. DataStage Function enhancements  New Client \ Domain Compatibility Check  Before/after routines now mask encrypted params  Copy project permissions from existing project when creating new project  Environment variable enhancements: creation during import  Add PX Stage Reset Support  Enhancement to Parallel Data Set Stage  Multiple Null Field Values on Import  Enhancements to improve Multi-Client Manager support&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;   5. DataStage Serviceability enhancements  New Audit Tracing  Enhanced Exception Dialog  ISA Lite Enhancements for DataStage  Enhanced Project Creation Failure Details&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;   6. ParallelPivot - Adding Vertical Pivoting&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;  7. CVS (Code Version Control Integration)  Information Server Manager was created on Eclipse from 8.1 Now  the CVS or Subversion plugins to Eclipse are available for DataStage  components. &lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/fRtbEJCCAIY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/1028000388869448474/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/datastage-81-to-datastage-85.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1028000388869448474?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/1028000388869448474?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/fRtbEJCCAIY/datastage-81-to-datastage-85.html" title="DataStage 8.1 to DataStage 8.5" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>4</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/datastage-81-to-datastage-85.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkIAQ3c-fip7ImA9WhdVEUU.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-3436592882383163836</id><published>2011-09-16T06:22:00.000-07:00</published><updated>2011-09-16T06:42:22.956-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-16T06:42:22.956-07:00</app:edited><title>Ten Reasons Why You Need DataStage 8.5</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Information Server 8.5 came out a couple weeks ago and is currently available on IBM Passport Advantage for existing customers and from IBM PartnerWorld for IM partners.&amp;nbsp; The XML pack described below is available as a separate download from the IBM Fix Central website.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
This is a list of the ten best things in DataStage 8.5.&amp;nbsp; Most of these are improvements in DataStage Parallel Jobs only while a couple of them will help Server Job customers as well.&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
1. It’s Faster&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Faster, faster, faster.&amp;nbsp; A lot of tasks in DataStage 8.5 are at least 40% faster than 8.1 such as starting DataStage, opening a job, running a Parallel job and runtime performance have all improved.&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
2. It' is now an XML ETL Tool&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Previous versions of DataStage were mediocre at processing XML.&amp;nbsp; DataStage 8.5 is a great XML processing tool.&amp;nbsp; It can open, understand and store XML schema files. &amp;nbsp;This pack in&amp;nbsp;&lt;a href="http://it.toolbox.com/blogs/infosphere/new-hierarchical-transformer-makes-datastage-great-a-xml-tool-42131" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;"&gt;New Hierarchical Transformer makes&amp;nbsp;&lt;em style="color: #333333; font-family: Arial; font-size: 12px; font-style: italic; line-height: 15px;"&gt;DataStage&lt;/em&gt;&amp;nbsp;great a&lt;em style="color: #333333; font-family: Arial; font-size: 12px; font-style: italic; line-height: 15px;"&gt;XML&lt;/em&gt;&amp;nbsp;Tool&lt;/a&gt;&amp;nbsp;and if you have XML files without schemas you can follow a tip at the DataStage Real Time blog:&amp;nbsp;&lt;a href="http://dsrealtime.wordpress.com/2010/10/28/the-new-xmlpack-in-8-5-generating-xsds/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;"&gt;The new XMLPack in 8.5….generating xsd’s….&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
The new XML read and transform stages are much better at reading large and complex XML files and processing them in parallel:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144049815/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 XML Job"&gt;&lt;img alt="DataStage 8.5 XML Job" border="0" src="http://static.flickr.com/4145/5144049815_b077314dd1.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span class="Apple-style-span" style="background-color: white; color: #333333; font-family: arial; font-size: 13px; line-height: 18px;"&gt;&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
3. Transformer Looping&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
The best Transformer yet.&amp;nbsp; The DataStage 8.5 parallel transformer is the best version yet thanks to new functions for looping inside a transformer and performing transformations across a grouping of records.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
With looping inside a Transformer you can output multiple rows for each input row.&amp;nbsp; In this example a record has a company name and four revenue sales figures for four regions – the loop will go through each column and output a row for each value if it is populated:&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655334/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Looping"&gt;&lt;img alt="DataStage 8.5 Transformer Looping" border="0" src="http://static.flickr.com/1239/5144655334_4d8fb4a267.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655334/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Looping"&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/29986804@N08/5144050153/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Aggregation"&gt;&lt;/a&gt;&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
4. Transformer Remembering&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
DataStage 8.5 Transformer has Remembering and key change detection which is something that ETL experts have been manually coding into DataStage for years using some well known workarounds.&amp;nbsp; A key change in a DataStage job involves a group of records with a shared key where you want to process that group as a type of array inside the overall recordset.&amp;nbsp;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
I am going to make a longer post about that later but there are two new cache objects inside a Transformer – SaveInputRecord() and GetSavedInputRecord(0 where you can save a record and retrieve it later on to compare two or more records inside a Transformer.&amp;nbsp;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
There are new system variables for looping and key change detection - @ITERATION, LastRow() indicates the last row in a job, LastTwoInGroup(InputColumn) indicates a particular column value will change in the next record.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Here is an aggregation example where rows are looped through and an aggregate row is written out when the key changes:&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655334/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Looping"&gt;&lt;/a&gt;&lt;a href="http://www.flickr.com/photos/29986804@N08/5144050153/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Aggregation"&gt;&lt;img alt="DataStage 8.5 Transformer Aggregation" border="0" src="http://static.flickr.com/1238/5144050153_739ebc4c5e.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655334/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Transformer Looping"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
4. Easy to Install&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Easier to install and more robust.&amp;nbsp; DataStage 8.5 has the best installer of any version of DataStage ever.&amp;nbsp; Mind you – I jumped aboard the DataStage train in version 3.6 so I cannot vouch for earlier installers but 8.5 has the best wizard, the best pre-requisite checking and the best recovery.&amp;nbsp; It also has the IBM Support Assistant packs for Information Server that make debugging and reporting of PMRs to IBM much easier.&amp;nbsp; There is also a Guide to Migrating to InfoSphere Information Serve 8.5 that explains how to migrate from most earlier versions.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
See my earlier blog post&amp;nbsp;&lt;a href="http://it.toolbox.com/blogs/infosphere/why-information-server-85-is-easier-to-install-than-information-server-81-41953" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;"&gt;Why Information Server 8.5 is Easier to Install than Information Server 8.1&lt;/a&gt;.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Patch Merge – that’s right, patch merge.&amp;nbsp; The new installer has the ability to merge patches and fixes into the install for easier management of patches and fixes.&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
5. Check In and Check Out Jobs&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Check in and Check out version control.&amp;nbsp; DataStage 8.5 Manager comes with direct access to the source control functions of CVS and Rational ClearCase in an Eclipse workspace.&amp;nbsp; You can send artefacts to the source control system and replace a DataStage component from out of the source control system.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655100/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Check In"&gt;&lt;img alt="DataStage 8.5 Check In" border="0" src="http://static.flickr.com/1232/5144655100_bef334c1d6.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
DataStage 8.5 comes with out of the box menu integration with CVS and Rational ClearCase but for other source control systems you need to use the Eclipse source control plugins.&lt;/div&gt;
&lt;h2 style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px; margin-bottom: 5px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;
6. High Availability Easier than ever&lt;/h2&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
High Availability – the version 8.5 installation guide has over thirty pages on Information Server topologies including a bunch of high availability scenarios across all tiers of the product.&amp;nbsp; On top of that there are new chapters for the high availability of the metadata repository, the services layer and the DataStage engine.&lt;/div&gt;
&lt;ul style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 25px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;li style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; list-style-type: square; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px;"&gt;Horizontal and vertical scaling and load balancing.&lt;/li&gt;
&lt;li style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; list-style-type: square; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px;"&gt;Cluster support for WebSphere Application Server.&lt;/li&gt;
&lt;ul style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 25px; padding-right: 0px; padding-top: 0px;"&gt;
&lt;li style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; list-style-type: square; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px;"&gt;Cluster support for XMETA repository: DB2 HADR/Cluster or Oracle RAC.&lt;/li&gt;
&lt;li style="color: #333333; font-family: Arial; font-size: 12px; font: normal normal normal 13px/normal arial; line-height: 15px; list-style-type: square; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 5px; padding-left: 0px;"&gt;Improved failover support on the engine.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
7. New Information Architecture Diagramming Tool&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
InfoSphere Blueprint Direct – DataStage 8.5 comes with a free new product for creating diagrams of an information architecture and linking elements in the diagram directly into DataStage jobs and Metadata Workbench metadata.&amp;nbsp; Solution Architects can draw a diagram of a data integration solution including sources, Warehouses and repositories.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144092781/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Blueprint Director"&gt;&lt;img alt="DataStage 8.5 Blueprint Director" border="0" src="http://static.flickr.com/4069/5144092781_82eb0507ca.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
8. Vertical Pivot&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
There are people out there who have been campaigning for vertical pivot for a long time – you know who you are!&amp;nbsp; It is now available and it can pivot multiple input rows with a common key into output rows with multiple columns.&amp;nbsp; Key based groups, columnar pivot and aggregate functions.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
You can also do this type of vertical pivoting in the new Transformer using the column change detection and row cache – but the Vertical pivot stage makes it easier as a specialised stage.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
9. Z/OS File Stage&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Makes it easier to process complex flat files by providing native support for mainframe files.&amp;nbsp; Use it for VSAM files – KSDS, ESDS, RRDS.&amp;nbsp; Sequential QSAM, BDAM, BSAM.&amp;nbsp; Fixed and variable length records.&amp;nbsp; Single or multiple record type files.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144655688/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 zOS File Stage"&gt;&lt;img alt="DataStage 8.5 zOS File Stage" border="0" src="http://static.flickr.com/1401/5144655688_7c172a3586.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
10.&amp;nbsp; Balanced Optimizer Comes Home&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
In DataStage 8.5 the Balanced Optimizer has been merged into the Designer and it has a number of usability improvements that turns DataStage into a better ETLT or ELT option.&amp;nbsp; Balanced Optimizer looks at a normal DataStage job and comes up with a version that pushes some of the steps down onto a source or target database engine.&amp;nbsp; IE it balances the load across the ETL engine and the database engines.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
Version 8.5 has improved logging, improved impact analysis support and easier management of optimised versions of jobs in terms of creating, deleting, renaming, moving, compiling and deploying them.&lt;/div&gt;
&lt;div style="color: #333333; font-family: Arial; font-size: 13px; line-height: 15px;"&gt;
&lt;a href="http://www.flickr.com/photos/29986804@N08/5144050401/" style="color: #0a5ca3; font-family: Arial; font-size: 12px; line-height: 15px; text-decoration: none;" title="DataStage 8.5 Balanced Optimizer"&gt;&lt;img alt="DataStage 8.5 Balanced Optimizer" border="0" src="http://static.flickr.com/1107/5144050401_b6b771826a.jpg" style="color: #333333; font-family: Arial; font-size: 12px; line-height: 15px;" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/04U2NnEU7U4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/3436592882383163836/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/09/ten-reasons-why-you-need-datastage-85.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/3436592882383163836?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/3436592882383163836?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/04U2NnEU7U4/ten-reasons-why-you-need-datastage-85.html" title="Ten Reasons Why You Need DataStage 8.5" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/09/ten-reasons-why-you-need-datastage-85.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UESHo_cSp7ImA9WhdXFkU.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-2052379486742915257</id><published>2011-08-29T22:12:00.000-07:00</published><updated>2011-08-29T22:13:29.449-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-29T22:13:29.449-07:00</app:edited><title>When to choose Server or Parallel Data stage job</title><content type="html">&lt;h3 style="font-family: times new roman; text-align: justify;" class="post-title entry-title"&gt; &lt;a href="http://etl-information.blogspot.com/2008/11/when-to-choose-server-or-parallel-data.html"&gt;
&lt;br /&gt;&lt;/a&gt; &lt;/h3&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: times new roman;"&gt; &lt;/span&gt;  &lt;/div&gt;&lt;ol style="font-family: times new roman; text-align: justify;"&gt;&lt;li&gt; The choice of server or parallel depends upon time to implement, functionality and cost. &lt;/li&gt;&lt;li&gt; When we have lots of functionality to implement for lower  volume and hardware is less and ease of implementation we can go for  Server jobs. &lt;/li&gt;&lt;li&gt; Parallel jobs are costly due to high scale of hardware ,  difficult to implement, extreme processing capabilities for absurd  volumes with vast array of operators for high-performance manipulation.  &lt;/li&gt;&lt;li&gt; When the data volume is less it is better to go for Server job as parallel jobs can have a longer start up time. &lt;/li&gt;&lt;li&gt; When data volume is high, it is better to choose parallel job  than server job. Parallel job will be a lot faster than server job even  if it runs on single node. The obvious incentive for going parallel is  data volume. Parallel jobs can remove bottlenecks and run across  multiple nodes in a cluster for almost unlimited scalability. At this  point parallel jobs become the faster and easier option.     A parallel sort stage is lot faster than server stage.  A  Transformer stage in parallel job with the same transformations in  server job is faster. Even on one node with a compiled transformer  stage, the parallel version was three times faster. On 1 node  configuration that does not have a lot of parallel processing also we  can still get big performance improvements from an Enterprise Edition  job. The improvements will be multiplied 10 or more than that if we work  on 2CPU machines and two nodes in most stages. &lt;/li&gt;&lt;li&gt; Parallel jobs take advantage of both pipeline parallelism and partitioning parallelism.  &lt;/li&gt;&lt;li&gt; We can improve the performance of server job by enabling inter  process row buffering. This helps stages to exchange data as soon as it  is available in the link. IPC stage also helps passive stage to read  data from another as soon as data is available. In other words, stages  do not have to wait for the entire set of records to be read first and  then transferred to the next stage. Link partitioner and link collector  stages can be used to achieve a certain degree of partitioning  parallelism. &lt;/li&gt;&lt;li&gt; Look up with sequential file is possible in parallel jobs and not possible in server jobs.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/GixIFM-Y5lA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/2052379486742915257/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/08/when-to-choose-server-or-parallel-data.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/2052379486742915257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/2052379486742915257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/GixIFM-Y5lA/when-to-choose-server-or-parallel-data.html" title="When to choose Server or Parallel Data stage job" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/08/when-to-choose-server-or-parallel-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYMRn4yeyp7ImA9WhdREkw.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-4051953274109655546</id><published>2011-08-01T08:22:00.000-07:00</published><updated>2011-08-01T08:23:07.093-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-01T08:23:07.093-07:00</app:edited><title>Over command</title><content type="html">&lt;span style="font-family:times new roman;"&gt;A window function in &lt;/span&gt;&lt;a title="SQL:2003" href="http://en.wikipedia.org/wiki/SQL:2003"&gt;&lt;span style="font-family:times new roman;"&gt;SQL:2003&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; is an &lt;/span&gt;&lt;a title="Aggregate function" href="http://en.wikipedia.org/wiki/Aggregate_function"&gt;&lt;span style="font-family:times new roman;"&gt;aggregate function&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; applied to a partition of the result set.&lt;br /&gt;For example, sum(population) OVER( PARTITION BY city )&lt;br /&gt;calculates the sum of the populations of all rows having the same city value as the current row.&lt;br /&gt;Partitions are specified using the OVER clause which modifies the aggregate. Syntax:&lt;over_clause&gt; :: =&lt;br /&gt;OVER ( [ PARTITION BY &lt;expr&gt;, ... ]&lt;br /&gt;[ ORDER BY &lt;expression&gt;] )&lt;br /&gt;The OVER clause can partition and order the result set. Ordering is used for order-relative functions such as row_number.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/Rt29eOg1Wtg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/4051953274109655546/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/08/over-command.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4051953274109655546?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4051953274109655546?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/Rt29eOg1Wtg/over-command.html" title="Over command" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/08/over-command.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMEQX04cSp7ImA9WhZUGUQ.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-8386944200081087373</id><published>2011-06-13T13:52:00.000-07:00</published><updated>2011-06-13T13:53:20.339-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-13T13:53:20.339-07:00</app:edited><title>Extending Infosphere Datastage</title><content type="html">&lt;span style="font-family:times new roman;"&gt;Extending Infosphere Datastage&lt;br /&gt;One of the great features of Datastage Parallel engine is a possibility of extending it by creating custom components. The following article describes what are the options to build a DataStage PX stage that handles special processing needs not supplied with the native stages.Many people may ask why build a custom stage?Basically the main reason is to implement a complex business logic, not easily accomplished using standard Datastage stages or reuse of existing C, C++, Java, COBOL transformations.&lt;br /&gt;Datastage jobs can be extended using the following options:&lt;br /&gt;Wrappers&lt;br /&gt;Buildops&lt;br /&gt;Custom Stages (CustomOPS)&lt;br /&gt;Both BuildOPS and CustomOPS are primarly C++ code.&lt;br /&gt;Wrappers&lt;br /&gt;Wrappers are good if you cannot or do not want to modify the application and performance is not critical. Basically an OS-level legacy executable can be wrapped and turned into a Datastage PX stage (capable of parallel execution within the framework). Examples of commands that can be wrapped: a Binary file, Unix command (ls, grep, etc), Shell script. There are a few conditions that the legacy executable needs to fulfill:&lt;br /&gt;amenable to data-partition parallelism&lt;br /&gt;no dependencies between rows&lt;br /&gt;pipe-safe&lt;br /&gt;can read rows sequentially&lt;br /&gt;no random access to data&lt;br /&gt;Wrappers are treated by Infosphere Datastage as a black box, the application has no knowledge of contents, has no means of managing anything that occurs inside the wrapper, it only knows how to export data to and import data from the wrapper. So it is a user's task to know at design time the intended behavior of the wrapper and its schema interface. Example: wrapping ls Unix command:Ls /dwdev/sourcedata would yield a list of files and subdirectories. The wrapper is thus comprised of the command and a parameter that contains a disk location.&lt;br /&gt;Buildops&lt;br /&gt;Buildops are good if users need custom coding but do not need dynamic (runtime-based) input and output interfaces. Buildop provides a simple means of extending beyond the functionality provided by PX, but does not use an existing executable (like the wrapper).&lt;br /&gt;Reasons to use Buildop include:&lt;br /&gt;Speed / Performance&lt;br /&gt;Complex business logic that cannot be easily represented using existing stages, like advanced lookups across a range of values, custom surrogate key generation, calculating olling aggregates&lt;br /&gt;Build once and reusable everywhere within project, no shared container necessary&lt;br /&gt;Can combine functionality from different stages into one&lt;br /&gt;The Datastage interface called buildop automatically performs the tedious, error-prone tasks rquired to compile the program, such as invoke needed header files and build the necessary 'plumbing' for a correct and efficient parallel execution. The code needs to be Ansi C/C++ compliant. If code does not compile outside of Datastage, it will not compile within Datastage PX either. The good thing is that BuildOPS are compiled by DataStage itself.&lt;br /&gt;Custom stage&lt;br /&gt;Custom (C++ coding using framework API) is used when there is a need for custom coding and for dynamic input and output interfaces.&lt;br /&gt;The main reasons for building a custom stage:&lt;br /&gt;Add PX operator that is not already in DataStage&lt;br /&gt;Build an Operator and add to DataStage palette&lt;br /&gt;Use Datastage API&lt;br /&gt;Use Custom Stage to add new operator to PX canvas&lt;br /&gt;CustomOPS vs BuildOPS&lt;br /&gt;While Datastage compiles BuildOPS, Datastage developer is responsible for compiling CustomOPS.&lt;br /&gt;CustomOPS can be vey flexible, BuildOPS are generally used for a specific purpose. CustomOPS are generally used like any normal stages.&lt;br /&gt;BuildOPS are purely written in C++ , while Custom Operators can use anything as long as landing functions are defined in C++ (thus languages like Pro*C, Fortran, Pascal, etc. can be used).&lt;br /&gt;BuildOPS are limited to a specific table definition for input and output. Custom Operators have a great flexibility. &lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/VeFC8CA-AMw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/8386944200081087373/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/extending-infosphere-datastage.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8386944200081087373?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8386944200081087373?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/VeFC8CA-AMw/extending-infosphere-datastage.html" title="Extending Infosphere Datastage" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/extending-infosphere-datastage.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AARns-eCp7ImA9WhZUGUk.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-5314736627679797343</id><published>2011-06-12T22:05:00.000-07:00</published><updated>2011-06-12T22:09:07.550-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-12T22:09:07.550-07:00</app:edited><title>DataStage Parallel routines made really easy</title><content type="html">&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;p&gt;there are 3 kind of routines is there in Datastage.&lt;/p&gt;&lt;p&gt;1.server routines which will used in server jobs.&lt;/p&gt;&lt;p&gt; these routines will write in BASIC Language&lt;/p&gt;&lt;p&gt;2.parlell routines which will used in parlell jobs&lt;/p&gt;&lt;p&gt; These routines will write in C/C++ Language&lt;/p&gt;&lt;p&gt;3.mainframe routines which will used in mainframe jobs&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;&lt;a href="http://blogs.ittoolbox.com/dw/soa/archives/datastage-parallel-routines-made-really-easy-20926"&gt;http://blogs.ittoolbox.com/dw/soa/archives/datastage-parallel-routines-made-really-easy-20926&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/V1bgBYczSDQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/5314736627679797343/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/datastage-parallel-routines-made-really.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/5314736627679797343?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/5314736627679797343?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/V1bgBYczSDQ/datastage-parallel-routines-made-really.html" title="DataStage Parallel routines made really easy" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/datastage-parallel-routines-made-really.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcMQXw8eyp7ImA9WhZUGEk.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-8906101253265893917</id><published>2011-06-11T17:52:00.000-07:00</published><updated>2011-06-11T17:54:40.273-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T17:54:40.273-07:00</app:edited><title>What is Phantom error in the datastage. How to overcome this error.</title><content type="html">&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;Phantom Process is Orphened process.&lt;br /&gt;Some times some processes will still running in the server even though you kill the actual process.&lt;br /&gt;&lt;br /&gt;Some threads will be keep running without any source process they are called Phantom Process.&lt;br /&gt;&lt;br /&gt;if you see the Directory called PH this folder caprures the log of phantom process.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;If you are getting this error but  please check the active process in the datastage server and kill them if  they are running since very long time &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;In the transformer stage the  order of the output links should be such that the dependant links should  come after independent links. otherwise job will abort with message  phantom error&lt;/span&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/18TAbWtWHxM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/8906101253265893917/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/what-is-phantom-error-in-datastage-how.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8906101253265893917?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/8906101253265893917?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/18TAbWtWHxM/what-is-phantom-error-in-datastage-how.html" title="What is Phantom error in the datastage. How to overcome this error." /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/what-is-phantom-error-in-datastage-how.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIMQHc9fCp7ImA9WhZUGE4.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-4944233306541474745</id><published>2011-06-11T17:28:00.000-07:00</published><updated>2011-06-11T17:29:41.964-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T17:29:41.964-07:00</app:edited><title>How many places u can call Routines?</title><content type="html">&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;Routines can be called at the following places:&lt;br /&gt;a) In the job properties There is an option to call the Before and After job subroutines.&lt;br /&gt;b) In the job sequence there is an activity called "Routine Activity".From there also the routines could be called.&lt;br /&gt;c) In the derivation part of theTransformer of a parallel job "parallel routines"can be called.&lt;br /&gt;d) In the derivation part of theTransformer of a server job "server routines"can be called.&lt;br /&gt;f)In the server job stages also before and after job subroutines can be called.&lt;br /&gt;g)We  have called routines from user variable activity of a sequence as  well.(Here basically transforms are called which return a value to the  variable of the user variable activity after their execution.)&lt;/span&gt;&lt;br /&gt; &lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/NRRtfuDo-ks" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/4944233306541474745/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/how-many-places-u-can-call-routines.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4944233306541474745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/4944233306541474745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/NRRtfuDo-ks/how-many-places-u-can-call-routines.html" title="How many places u can call Routines?" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/how-many-places-u-can-call-routines.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQNRHs-cCp7ImA9WhZUGE4.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-7181905853735332168</id><published>2011-06-11T17:24:00.000-07:00</published><updated>2011-06-11T17:26:35.558-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T17:26:35.558-07:00</app:edited><title>how to create batches in Datastage from command prompt</title><content type="html">&lt;span style="font-family: times new roman;" id="sort1"&gt;&lt;span class="tdvamseel"&gt;&lt;strong&gt;From command prompt batches can be created in following way :&lt;/strong&gt;&lt;br /&gt;a) create a batch file say RunbatchJobs.bat&lt;br /&gt;b) Open this file in notepad.&lt;br /&gt;c) Now write the command "dsjob" with proper syntax for each job you want to run.&lt;br /&gt;d) in there are four jobs to be run in a batch use dsjob command 4 times with different job names on each line.&lt;br /&gt;e) Save the file and close it.&lt;br /&gt;f)  Next time whenever you want to run the jobs just click on the batch  file "RunbatchJobs.bat".All jobs will run one by one by the batch file.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Traditionally batch programs are created in the following way :&lt;/strong&gt;&lt;br /&gt;A  Batch Program is used to run a batch of jobs by writing the Server  routine code in the job control section.To generate a batch program do  following:&lt;br /&gt;a) Open datasatge director.&lt;br /&gt;b) Go to Tools-&amp;gt;Batch-&amp;gt;New.&lt;br /&gt;c) A new window will open with the "Job Control" tab selected.&lt;br /&gt;d)Write the routine code and save it.You may run multiple jobs in batch by making use of this.&lt;br /&gt;Note : The similar thing can be achieved more easily by making use of Datsatage Sequences.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: times new roman;" class="tdvamseel"&gt;Batch programe is the programe it's generate run  time to maintain by the datastage it self  but u can easy to change own  the basis of your requirement (Extraction, Transformation,Loading)  .Batch programe are generate depands your job nature either simple job  or sequencer job,You can see this programe on job controll option.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/tVFXO91CZ6g" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/7181905853735332168/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/how-to-create-batches-in-datastage-from.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7181905853735332168?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7181905853735332168?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/tVFXO91CZ6g/how-to-create-batches-in-datastage-from.html" title="how to create batches in Datastage from command prompt" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>1</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/how-to-create-batches-in-datastage-from.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkIHQXc6fip7ImA9WhZUGE8.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-9197871605698820021</id><published>2011-06-11T14:38:00.000-07:00</published><updated>2011-06-11T14:42:10.916-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-11T14:42:10.916-07:00</app:edited><title>Basic shell scripting questions</title><content type="html">&lt;h1 style="font-family: times new roman; font-weight: normal;" class="entry-title"&gt;&lt;br /&gt;&lt;/h1&gt;&lt;span style="font-family:times new roman;"&gt; &lt;/span&gt;                                                         &lt;ol style="font-family: times new roman;"&gt;&lt;li&gt;How do you find out what’s your shell? - echo $SHELL&lt;/li&gt;&lt;li&gt;What’s the command to find out today’s date? - date&lt;/li&gt;&lt;li&gt;What’s the command to find out users on the system? - who&lt;/li&gt;&lt;li&gt;How do you find out the current directory you’re in? - pwd&lt;/li&gt;&lt;li&gt;How do you remove a file? - rm&lt;/li&gt; &lt;li&gt;How do you find out your own username? - whoami&lt;/li&gt;&lt;li&gt;How do you send a mail message to somebody? - mail &lt;a href="mailto:somebody@techinterviews.com"&gt;somebody@techinterviews.com&lt;/a&gt; -s ‘Your subject’ -c &lt;a href="mailto:%27cc@techinterviews.com"&gt;‘cc@techinterviews.com&lt;/a&gt;‘&lt;/li&gt;&lt;p&gt; &lt;/p&gt;&lt;li&gt;How do you count words, lines and characters in a file? - wc&lt;/li&gt;&lt;li&gt;How do you search for a string inside a given file? - grep string filename&lt;/li&gt;&lt;li&gt;How do you search for a string inside a directory? - grep string *&lt;/li&gt;&lt;li&gt;How do you search for a string in a directory with the subdirectories recursed? - grep -r string *&lt;/li&gt;&lt;li&gt;What are PIDs? - They are process IDs given to processes. A PID can vary from 0 to 65535.&lt;/li&gt;&lt;li&gt;How do you list currently running process? - ps&lt;/li&gt;&lt;li&gt;How do you stop a process? - kill pid&lt;/li&gt;&lt;li&gt;How do you find out about all running processes? - ps -ag&lt;/li&gt;&lt;li&gt;How do you stop all the processes, except the shell window? - kill 0&lt;/li&gt;&lt;li&gt;How do you fire a process in the background? - ./process-name &amp;amp;&lt;/li&gt;&lt;li&gt;How do you refer to the arguments passed to a shell script? - $1, $2 and so on. $0 is your script name.&lt;/li&gt;&lt;li&gt;What’s the conditional statement in shell scripting? - if {condition} then … fi&lt;/li&gt;&lt;li&gt;How do you do number comparison in shell scripts? - -eq, -ne, -lt, -le, -gt, -ge&lt;/li&gt;&lt;li&gt;How do you test for file properties in shell scripts? - -s  filename tells you if the file is not empty, -f filename tells you  whether the argument is a file, and not a directory, -d filename tests  if the argument is a directory, and not a file, -w filename tests for  writeability, -r filename tests for readability, -x filename tests for  executability&lt;/li&gt;&lt;li&gt;How do you do Boolean logic operators in shell scripting? - ! tests for logical not, -a tests for logical and, and -o tests for logical or.&lt;/li&gt;&lt;li&gt;How do you find out the number of arguments passed to the shell script? - $#&lt;/li&gt;&lt;li&gt;What’s a way to do multilevel if-else’s in shell scripting? - if {condition} then {statement} elif {condition} {statement} fi&lt;/li&gt;&lt;li&gt;How do you write a for loop in shell? - for {variable name} in {list} do {statement} done&lt;/li&gt;&lt;li&gt;How do you write a while loop in shell? - while {condition} do {statement} done&lt;/li&gt;&lt;li&gt;How does a case statement look in shell scripts? - case {variable} in {possible-value-1}) {statement};; {possible-value-2}) {statement};; esac&lt;/li&gt;&lt;li&gt;How do you read keyboard input in shell scripts? - read {variable-name}&lt;/li&gt;&lt;li&gt;How do you define a function in a shell script? - function-name() { #some code here return }&lt;/li&gt;&lt;li&gt;How does getopts command work? - The parameters to your  script can be passed as -n 15 -x 20. Inside the script, you can iterate  through the getopts array as while getopts n:x option, and the variable  $option contains the value of the entered option.&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/JDMBBjk9EOg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/9197871605698820021/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/basic-shell-scripting-questions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/9197871605698820021?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/9197871605698820021?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/JDMBBjk9EOg/basic-shell-scripting-questions.html" title="Basic shell scripting questions" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/basic-shell-scripting-questions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4GRng-fCp7ImA9WhZVGUs.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-6540534235714059410</id><published>2011-06-01T13:39:00.000-07:00</published><updated>2011-06-01T13:42:07.654-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T13:42:07.654-07:00</app:edited><title>sequence triggers and expressions</title><content type="html">&lt;span style="font-family:times new roman;"&gt;Sequence stage has a tab called trigger. This tab gives you a place to specify the expressions on the input links or in other words this tab provides a facility to control the behaviour of job activities inside sequences when executed one after another.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;For example we have two job A and Job B. Jobs B should always run once job A finishes successfully. There should not be any warnings in the execution of job A and then only job B's execution should starts. Hence to achieve this we will select appropriate "Expression Type" and "Expression" in trigger tab of the sequence.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;In above scenario "Expression Type" would be "OK - (Conditional)" and "Expression" section can be blank. Now what would we write if we have a job which can generate warnings and still we want job B to run. Now in this situation we will be specifying different "Expression Type" and "Expressions". Here we should choose Expression type as Custom - (Conditional) and specify Expression as "DSJS.RUNWARN Or DSJS.RUNOK". This expression will make sure that job B runs even if job A generated warnings or executed cleaned.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;"DSJS.RUNWARN and DSJS.RUNOK" are status which can be used in the expression section of sequence. Following is the list of available status which can be used in the expression depending upon the requirement. DSJS.RUNNING - Job running&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.RUNOK - Job finished a normal run with no warnings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.RUNWARN - Job finished a normal run with warnings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.RUNFAILED - Job finished a normal run with a fatal error&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.QUEUED - Job queued waiting for resource allocation&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.VALOK - Job finished a validation run with no warnings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.VALWARN - Job finished a validation run with warnings&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.VALFAILED - Job failed a validation run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.RESET - Job finished a reset run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.CRASHED - Job was stopped by some indeterminate action&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.STOPPED - Job was stopped by operator intervention&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.NOTRUNNABLE - Job has not been compiled&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;DSJS.NOTRUNNING - Any other statusThere are few things we should remember with respect to triggers on sequences and they are as follows:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;1 - Job activities in a sequence can have one input trigger and multiple output triggers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;2 - Trigger name must be unique in the activity however you can have multiple same named triggers in a sequence.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;3 - Trigger would fire if the source meets the conditions defined in the activity. In our example even if Job A generates warning job B will be executed because trigger expression suffice this condition.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;4 - DataStage macros can be used in triggers.If we use correct and appropriate expressions types and expressions in our sequences then we can control the interconnected activities more efficiently in the sequences for better performance and output.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/fv9iB4YSRMY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/6540534235714059410/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/sequence-triggers-and-expressions.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/6540534235714059410?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/6540534235714059410?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/fv9iB4YSRMY/sequence-triggers-and-expressions.html" title="sequence triggers and expressions" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/sequence-triggers-and-expressions.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkABQnk-eSp7ImA9WhZVGUs.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-7585092328339476392</id><published>2011-06-01T13:34:00.000-07:00</published><updated>2011-06-01T13:39:13.751-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T13:39:13.751-07:00</app:edited><title>Notes</title><content type="html">&lt;a href="http://www.datastagetips.com/2011/02/datasets.html"&gt;&lt;span style="font-family:times new roman;"&gt;Datasets&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;Datasets are the best when storing the results intermediately. Datasets will keep the partitions and sort order if set. This will save re-partitioning, sorting and would make the job more robust. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.datastagetips.com/2011/02/performance-of-job-can-be-improved-if.html"&gt;&lt;span style="font-family:times new roman;"&gt;Performance of the job can be improved if:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;1) Unnecessary column are removed from the up and down stream links.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;2) Removing these unnecessary columns will help reducing the memory consumption.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;3) Always specify the list of columns in the select statement when reading from database. This will not bring unnecessary column data in the job which will save memory and network consumption.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;4) Use RCP very carefully.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;5) Understand the data-type before using them in the job. Do the data profiling before bringing data in the job. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.datastagetips.com/2011/02/sort-operations.html"&gt;&lt;span style="font-family:times new roman;"&gt;Sort operations:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;Always perform the following checks first before using the sort in the design:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;1) Is sort really needed?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;2) What is the volume of data going to be sorted?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;3) Is data being read from database first and getting sorted in the job? Can we not sort the data in the database and bring sorted data?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;4) What are the values set in the system related to Sort stage?If we give attention to above questions before applying sort then this will help up creating more performant job. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.datastagetips.com/2011/02/parallelism-is-not-always-good.html"&gt;&lt;span style="font-family:times new roman;"&gt;Parallelism is not always good:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;Remember parallelism is not always beneficial. You have to think about the design of the job and the configuration. Degree of parallelism is determined by the configuration file where you can check how many node are defined. Increased parallelism can bring more overhead but will help distributing the work. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.datastagetips.com/2011/02/to-get-maximum-performance-from-job.html"&gt;&lt;span style="font-family:times new roman;"&gt;To get the maximum performance from job:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;To get the maximum performance from job we should start the job design with the smaller set of the data and then increase the amount of data. We will only get the best performing job when we will experiment with the design of the job using different partitioning methods etc. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.datastagetips.com/2011/02/point-to-remember-while-partitioning.html"&gt;&lt;span style="font-family:times new roman;"&gt;Point to remember while partitioning the data:&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt;&lt;br /&gt;While partitioning the data make sure that the partitions are having equal amount of data in them. inequality will make the job less performant. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/h0dQAZdIcFk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/7585092328339476392/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/notes.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7585092328339476392?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7585092328339476392?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/h0dQAZdIcFk/notes.html" title="Notes" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/notes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MFSXY9eip7ImA9WhZVGUg.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-7594493393726722241</id><published>2011-06-01T13:15:00.000-07:00</published><updated>2011-06-01T13:16:58.862-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T13:16:58.862-07:00</app:edited><title>use of this?</title><content type="html">&lt;span style="font-family:times new roman;"&gt;$PROJDEF - Populates the current value of the environment variable defined for a job. Value set for the variable will be used during the execution of the job. Benefit of using this special value is that we do not need to worry about the changing value of the environment variables (if it changes), job will use the current value of the variable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;$ENV - Set current value of the environment variable.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;$UNSET - Unset current value of the environment variable.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/3srCVhVyNIU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/7594493393726722241/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/use-of-this.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7594493393726722241?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7594493393726722241?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/3srCVhVyNIU/use-of-this.html" title="use of this?" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/use-of-this.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IEQHw6fip7ImA9WhZVGUs.&quot;"><id>tag:blogger.com,1999:blog-8488921660773406894.post-7289920457936010079</id><published>2011-06-01T12:19:00.000-07:00</published><updated>2011-06-01T13:51:41.216-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-01T13:51:41.216-07:00</app:edited><title>Lookup/Join/Merge</title><content type="html">&lt;span style="font-family:times new roman;"&gt;Lookup - give an opportunity to refer the data without sorting it. If the reference data is small and manageable in the memory. In this scenario this stage can give boost to the performance of the job. This stage is also to merge the information from two different sources.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Join - The fact is join does support two or more input links (left right and possibly intermediate links). But yes if you are tallking about full outer join then more than two links are not supported.&lt;br /&gt;Coming back to main question of difference between Join and Merge Stage the other significant differences that I have noticed are:&lt;br /&gt;1) Number Of Reject Link&lt;br /&gt;(Join) does not support reject link.&lt;br /&gt;(Merge) has as many reject link as the update links( if there are n-input links then 1 will be master link and n-1 will be the update link).&lt;br /&gt;2) Data Selection&lt;br /&gt;(Join) There are various ways in which data is being selected. e.g. we have different types of joins inner outer( left right full) cross join etc. So you have different selection criteria for dropping/selecting a row.&lt;br /&gt;(Merge) Data in Master record and update records are merged only when both have same value for the merge key columns. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Merge - As the name suggest the stage is to merge the two or more sources also this stage needs the sorted data input. The benefit of this stage on above join stage is that in this stage we can have the reject links which is not possible in the join stage however it is possible in the lookup.&lt;/span&gt;&lt;img src="http://feeds.feedburner.com/~r/datastageinfo/RzuB/~4/AMsmcp1tZZo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.datastageinfo.com/feeds/7289920457936010079/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.datastageinfo.com/2011/06/lookupjoinmerge.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7289920457936010079?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/8488921660773406894/posts/default/7289920457936010079?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/datastageinfo/RzuB/~3/AMsmcp1tZZo/lookupjoinmerge.html" title="Lookup/Join/Merge" /><author><name>lokeb4u</name><uri>http://www.blogger.com/profile/02984429371929792692</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="24" height="32" src="http://3.bp.blogspot.com/_b180i5wNsDY/SMcFYohTpvI/AAAAAAAAAAM/MOw7xnKNd3M/S220/IMG_1292.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://www.datastageinfo.com/2011/06/lookupjoinmerge.html</feedburner:origLink></entry></feed>
