tag:blogger.com,1999:blog-59420527969696576062024-03-05T01:01:20.257-06:00Db2 for iInsight and perspectives on data management using IBM iUnknownnoreply@blogger.comBlogger95125tag:blogger.com,1999:blog-5942052796969657606.post-51817737613283009482021-04-15T07:46:00.004-05:002021-04-15T08:43:50.128-05:00Latest IBM i TR adds Query Supervisor to Db2 & Your Team!<p><span face="Arial, sans-serif" style="font-size: 10pt; line-height: 107%;">The latest IBM i Technology Refresh was announced this week
which means there are </span><a href="http://ibm.com/ibmi/techupdates/db2"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">new
Db2 for i features and functions</span></a><span face="Arial, sans-serif" style="font-size: 10pt; line-height: 107%;"> available to you. This latest
announcement includes Db2 Mirror for i enhancements, SQL advancements, and new
& updated IBM i services – however, the Query Supervisor is by far the most
interesting new bell and whistle.</span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">I like to remind IBM i clients that when they start using
SQL they’re actually extending the size of their development team. Your team
grows in size because the Db2 for i SQL engine features a Query Optimizer whose
job it is to determine the fastest way to access and retrieve the data. Your development
team is able to focus on the coding of business logic and leave the performance
logic to the Query Optimizer. This latest announcement adds another member to
your team with the introduction of the Query Supervisor.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">The new Query Supervisor allows you to take query
governance and monitoring to another level. If you’ve been around the platform
for a while, you might be thinking that Db2 for i already supports query
governance and you would be right.<span style="mso-spacerun: yes;"> </span>The Db2
for i support for a Query Governor goes way back to V3R1. <o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">The Query Governor is known as a predictive query governor
because it allows action to be taken before a query starts running. The
governor allows you to prevent a query from wasting system resources when the
query’s runtime implementation is predicted to exceed the time and/or temporary
storage thresholds that you’ve defined for your server. The predictive aspect
means that the Db2 for i Query Optimizer had to estimate the amount of time and
resources that it takes to run the requested query. <o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">As you might imagine, generating an accurate estimate is a
tall task. One of the biggest hurdles is that the optimizer has no idea how
busy the system will be when the query starts running. A CPU intensive workload
could start running milliseconds after the current query starts and there’s no
easy to way to predict this. Thus, the optimizer estimates are not going to be
one hundred percent accurate. The optimizer’s estimates are relatively accurate
meaning that long-running queries will have larger estimates than small-running
queries.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">This “relative” accuracy of the optimizer’s estimates made
it difficult to use the predictive query governor function system-wide. If you
set a query time limit of 5 minutes on the system, a query that runs closer to
two minutes might be prevented from running because the optimizer’s estimate
was 6 minutes. A query that was estimated to run in 3 minutes might actually
run for 7 minutes due to the system being busier than predicted. As a result of
these challenges, clients have asked IBM for additional query workload controls
and IBM has delivered on that request with the new Query Supervisor feature.<o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">The Query Supervisor provides a solution for taking action
on an active query whose <b>actual resource usage </b>exceeds a user-defined
threshold. When the Db2 engine detects that your threshold has been exceeded,
it will call a user-defined exit program to take action. That action might be
cancelling the query or just logging it and notifying an administrator about
the offending query; the possibilities are endless. If the exit program chooses
to cancel the query, then one could argue that system resources were wasted by
a query that didn’t complete. However, the upside is that you were able to
limit the amount of time that the query caused overhead on your system.<span style="mso-spacerun: yes;"> </span>Like the Query Governor, the Query Supervisor
supports SQL and non-SQL queries (OPNQRYF, etc.).<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: left;"><span face="Arial, sans-serif" style="font-size: 10pt;">The new Query Supervisor
support allows you to set the following threshold types with a simple call to
an SQL procedure - QSYS2.ADD_QUERY_THRESHOLD.</span></p><p class="MsoNormal" style="margin-bottom: 0in; text-align: left;"></p><ul style="text-align: left;"><li><span face="Arial, sans-serif"><span style="font-size: 13.3333px;">ELAPSED TIME</span></span></li><li><span face="Arial, sans-serif"><span style="font-size: 13.3333px;">TEMPORARY STORAGE</span></span></li><li><span face="Arial, sans-serif"><span style="font-size: 13.3333px;">CPU TIME</span></span></li><li><span face="Arial, sans-serif"><span style="font-size: 13.3333px;">TOTAL IO COUNT</span></span></li></ul><p></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">The threshold value is dependent on the type of threshold.
The threshold value for Elapsed Time and CPU Time would be specified in seconds
while the value specified for a Temporary Storage threshold would be given in
megabytes. The Total IO Count threshold value is just a count because it
specifies a limit on the number I/O operations that a query can perform.<o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">With the Query Supervisor, you can also specify filters to
narrow the focus of the supervisor’s threshold monitoring. The threshold
filters that can be applied are subsystem names, job names, and user profile
names to include or exclude. The values for each of these thresholds can be up
to 100 names and can include generic names (eg, ‘RPTUSER*’).<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">Here’s an example of a threshold definition to prevent
QZDASOINIT jobs from having queries that run longer than 5 minutes, unless the
queries were submitted by a manager. Notice in this example that you’re able to
specify multiple threshold filters on the definition.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;">CALL
QSYS2.ADD_QUERY_THRESHOLD (<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>THRESHOLD_NAME<span style="mso-spacerun: yes;"> </span>=> 'QZDASOINIT Time Limit ',<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>THRESHOLD_TYPE<span style="mso-spacerun: yes;"> </span>=> 'ELAPSED TIME ',<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>THRESHOLD_VALUE<span style="mso-spacerun: yes;"> </span>=><span style="mso-spacerun: yes;">
</span>300 , <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>JOB_NAMES<span style="mso-spacerun: yes;"> </span>=><span style="mso-spacerun: yes;"> </span>'QZDASOINIT',<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>EXCLUDE_USERS<span style="mso-spacerun: yes;"> </span>=> 'MGRID*',<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; text-align: justify;"><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%;"><span style="mso-spacerun: yes;"> </span>SUBSYSTEMS<span style="mso-spacerun: yes;"> </span>=> '*ALL'<span style="mso-spacerun: yes;"> </span>)</span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">Thresholds can be easily removed by specifying the
THRESHOLD_NAME on the QSYS2.REMOVE_QUERY_THRESHOLD procedure<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">The user-defined exit program needs
to be registered to the new QIBM_QQQ_QRY_SUPER exit point. As mentioned earlier,
the exit program allows you take a wide variety of actions. That flexibility is
enhanced even further with the input values that are passed to the exit
program. Here’s some of the more interesting input values to consider utilizing
in your program logic:<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in; mso-add-space: auto; mso-list: l0 level2 lfo2; tab-stops: list 1.0in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;">–<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">Threshold name, type & value<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in; mso-add-space: auto; mso-list: l0 level2 lfo2; tab-stops: list 1.0in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;">–<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">User, Subsystem, and Job Info<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in; mso-add-space: auto; mso-list: l0 level2 lfo2; tab-stops: list 1.0in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;">–<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">SQL Statement text, Plan Identifier & Host Variable
values<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 1in; mso-add-space: auto; mso-list: l0 level2 lfo2; tab-stops: list 1.0in; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: "Times New Roman",serif; font-size: 10pt; line-height: 107%; mso-fareast-font-family: "Times New Roman";"><span style="mso-list: Ignore;">–<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">Client Register Values</span></p>
<p class="MsoNormal"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">To try out your new Query Supervisor team member, you just
need to load the </span><a href="https://www.ibm.com/support/pages/node/6408996"><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;">Database
Group PTFs</span></a><span face=""Arial",sans-serif" style="font-size: 10pt; line-height: 107%;"> onto your IBM i 7.3 or 7.4 systems when they are released
next month.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-89407310857938139112021-03-25T14:38:00.003-05:002021-03-25T15:04:12.479-05:00IBM i Services are Great, but they're NOT Magic<p>The development team in Rochester has been quite busy over
the last several years making it easy to use SQL to access data and services
related to the IBM i operating system. These <a href="http://ibm.biz/Db2foriServices" target="_blank">IBM i Services</a> can be used with SQL to perform a variety of requests; these requests
range from retrieving data on active jobs & database connections to placing
entries on data queues to checking object authorities to writing data to IFS
files. I’m using the "IBM i Services" term here generically to refer to services
that you call and to queries against system catalog views because many of the newer views utilize service calls to return data. </p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">The good news is that we’re seeing a lot of IBM i developers
leverage these services to solve a number of problems.<span style="mso-spacerun: yes;"> </span>The bad news is we’re finding many developers
using these services without any thought given to performance.<span style="mso-spacerun: yes;"> </span>Little consideration is given to how much
data is being requested and how often the request is being made - it’s almost
like they think there’s something magical about the performance of these
services just because they are from IBM. While the IBM development team
creating these services is really good, performance analysis and testing should
be part of the rollout of any new functions using the IBM i Services. The same
performance rigor that you would apply to the deployment of new business
processes on your production systems needs to be applied to the deployment of
code using the IBM i Services.<o:p></o:p></p>
<p class="MsoNormal">Our Db2 Lab Services team analyzes the Top 25 Most Time
Consuming SQL statements as part of the <a href="http://ibm.biz/Db2iLabServices" target="_blank">SQL Performance Assessment service</a> that we
perform for clients.<span style="mso-spacerun: yes;"> </span>In the last two
years, we’re often finding SQL statements using IBM i Services in the list of
most time consuming SQL. These time consuming SQL statements often have a
negative impact on overall system performance because of their resource usage.
A recent conversation with colleagues in IBM Support revealed they are seeing
similar trends with clients reporting system performance problems, only to find
a suboptimal services call as the root cause. <o:p></o:p></p>
<p class="MsoNormal">Here are some performance considerations when using IBM i
Services with SQL.<o:p></o:p></p>
<p class="MsoNormal">First, not all services are designed to be called repeatedly
on the system and/or to be called during daytime hours when system usage is
heavy. Some services consume more system resources than others – that’s why
performance testing is key to get a feel for how long the service takes to run
and how many resources will be consumed by the service. The IBM Support team
shared one story of a client complaining about system performance only to determine
the client was calling the DISPLAY_JOURNAL service with very few input filters every
two minutes on their production system. Repeated calls to other services like
DATA_QUEUE_ENTRIES may be perfectly fine and that can be easily determined with
performance testing and analysis. Performance analysis may also lead you to
determine that the service needs to be called and run overnight when system
usage is low.<o:p></o:p></p>
<p class="MsoNormal">Second, while the <a href="file:///K:/Lotuswordpro/Articles/Blog/ibm.biz/db2iPapers">creation of
indexes</a> is often a solution to make SQL queries run faster & more
efficiently<span style="mso-spacerun: yes;"> </span>– this technique does <b>not</b>
help with SQL statements using IBM i Services.<span style="mso-spacerun: yes;">
</span>Indexes are not applicable because most IBM i Services rely on functions
to dynamically generate the result data, so there’s no data to index. The function logic is accessing & processing IBM i objects with system API
calls. The operating system data being processed is not stored in tables and
rows which are normally the target of an SQL request.<o:p></o:p></p>
<p class="MsoNormal">The lack of help from indexing leads to the last and probably
most important performance consideration – ensure your IBM i Service calls are
<b><span style="color: red;">tightly focused</span></b>.<span style="mso-spacerun: yes;"> </span>A tight focus means
specifying as many search parameters as possible on your calls to minimize the
amount of data that has to be touched in order to return the result. For
example, one could use the following query against the SYSPROGRAMSTAT catalog
view to retrieve release details about an SQL program (MYSQLPGM) <o:p></o:p></p><p class="MsoNormal" style="margin-bottom: 0in;"><o:p> <span style="font-family: courier;"> </span></o:p><span style="font-family: courier;">SELECT target_release, earliest_possible_release </span><span style="font-family: courier;">FROM
qsys2.sysprogramstat</span></p><p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;"> WHERE program_name=<span style="color: #323232; font-size: 13.3333px;">'</span>MYSQLPGM</span><span style="color: #323232; font-family: courier; font-size: 13.3333px;">'</span></p>
<p class="MsoNormal">While this query works, the scope is not focused – the
request directs Db2 to search through <i><u>every</u></i> library containing an
SQL program instead of scoping the search to the library containing the
program.<span style="mso-spacerun: yes;"> </span>The focus has been tightened on
this new version of the SELECT statement resulting in the same result, but with
better performance since the scope was narrowed to a single library:<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">SELECT target_release, earliest_possible_release FROM
qsys2.sysprogramstat<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;"> WHERE program_name=<span style="color: #323232; font-size: 13.3333px;">'</span>MYSQLPGM<span style="color: #323232; font-size: 13.3333px;">'</span> AND program_schema=</span><span style="color: #323232; font-family: courier; font-size: 13.3333px;">'</span><span style="font-family: courier;">MYPGMLIB</span><span style="color: #323232; font-family: courier; font-size: 13.3333px;">'</span></p>
<p class="MsoNormal" style="margin-bottom: 0in;">Including search predicates on a
WHERE clause is one way to narrow the focus of an IBM i Service.<span style="mso-spacerun: yes;"> </span>The other method for narrowing focus is passing
input parameters on the service call itself. Let’s use the OBJECT_STATISTICS
service as an example. An audit requires you to provide a list of all the program
& service program objects on your system. The following SELECT statement
generates the required listing, but the scope of the service request is too
broad requesting all libraries on the system be processed by the table function
call.<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">SELECT objname, objlib, objtype <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">FROM TABLE(QSYS2.OBJECT_STATISTICS(<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>*ALL<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>,<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;"> '</span>PGM SRVPGM<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'))<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">WHERE objlib NOT LIKE <span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>Q%</span><span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;"><span style="font-family: courier;">' </span><span style="font-family: Courier;"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;">While the IBM libraries are
filtered out with the WHERE clause – that filtering is performed after the data
is returned by the table function. <span style="mso-spacerun: yes;"> </span>The
amount of data processed by this call would be greatly reduced by changing the
first input parameter from *ALL to *ALLUSR so that only user libraries are
processed by the service.<span style="mso-spacerun: yes;"> </span>Thus,
eliminating the need for the WHERE clause.<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">SELECT objname, objlib, objtype <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">FROM TABLE(QSYS2.OBJECT_STATISTICS(<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>*ALLUSR<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>,<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;"> '</span>PGM SRVPGM</span><span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;"><span style="font-family: courier;">'))</span><span style="font-family: Courier;"><o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="border: 1pt none windowtext; color: #323232; font-family: Courier; font-size: 10pt; line-height: 107%; mso-bidi-font-family: "Courier New"; mso-border-alt: none windowtext 0in; mso-fareast-font-family: "Times New Roman"; padding: 0in;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in;">Some IBM i services have options
that reduce the amount of detailed data is collected and returned in order to speed
up the performance.<span style="mso-spacerun: yes;"> </span>The
OBJECT_STATISTICS service has such an option, so this request can be made even
more efficient by adding a third parameter with a value of *ALLSIMPLE.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">SELECT objname, objlib, objtype <o:p></o:p></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><span style="font-family: courier;">FROM TABLE(QSYS2.OBJECT_STATISTICS(<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>*ALLUSR<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">'</span>,<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;"> '</span>PGM SRVPGM<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">', '</span>*ALLSIMPLE<span style="border: 1pt none windowtext; color: #323232; font-size: 10pt; line-height: 107%; padding: 0in;">' ))<o:p></o:p></span></span></p>
<p class="MsoNormal" style="margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; margin: 0in 0in 0in 0.5in;"><o:p><span style="font-family: courier;"> </span></o:p></p>
<p class="MsoNormal" style="margin-bottom: 0in;">With these guidelines in tow, you
should be able to use IBM i Services in production without negatively impacting
system performance.<span style="mso-spacerun: yes;"> </span>You can also find a ton
of good examples of using IBM i Services on<span style="mso-spacerun: yes;">
</span>Scott Forstie’s SQL examples site:<span style="mso-spacerun: yes;">
</span><a href="http://ibm.biz/Db2foriSQLTutor" target="_blank">ibm.biz/Db2foriSQLTutor</a> Let me know if your company needs
assistance tuning your usage of IBM i Services.</p><p class="MsoNormal" style="margin-bottom: 0in;"><o:p></o:p></p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5942052796969657606.post-90980764395172254642021-02-17T14:36:00.002-06:002021-02-17T14:51:24.274-06:00 The ABCs of Effective DB2 SMP Usage<p>Creation of the Db2 for i SMP (Symmetric Multiprocessing)
licensed feature was one of the coolest projects that I was able to work on
during my time on the Db2 development team. Figuring out how to add parallel
processing into the Db2 engine was both interesting and challenging work. I did
some searching through the <a href="https://books.google.com/books?id=0joEAAAAMBAJ&pg=PA6&lpg=PA6&dq=db2+as/400+smp+parallel+processing&source=bl&ots=f_MZTALEDC&sig=ACfU3U3KEEpy_XLPXzhNc-5R_si1aybbOg&hl=en&sa=X&ved=2ahUKEwiE26Xq8u7uAhUHVc0KHeEhAwo4FBDoATAJegQICBAC#v=onepage&q=db2%20as%2F400%20smp%20parallel%20processing&f=false">InfoWorld
archives</a> (remember when hard copy IT periodicals were a thing…) and figured
out that the SMP feature recently turned 25 years old in November 2020.<span style="mso-spacerun: yes;"> </span>As the <a href="https://poemanalysis.com/glossary/time-flies-when-youre-having-fun/">old
saying</a> goes, time flies when you’re having fun.</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">As part of that development project, I also had the
opportunity to help one of the first customers use Db2 SMP in their shop. While
the SMP feature and underlying hardware have changed over the years, the items to
consider for a successful Db2 SMP implementation have not.<o:p></o:p></p>
<p class="MsoNormal">I’ve tried to break the success factors into the following
ABC acrostic –might be a bit of a stretch, but it makes for a catchy title<span face=""Segoe UI Emoji",sans-serif" style="mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol-ext; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: "Segoe UI Emoji";">😉</span><o:p></o:p></p>
<p class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><b>A</b>vailable system resources<o:p></o:p></p>
<p class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><b>B</b>alanced expectations <o:p></o:p></p>
<p class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -0.25in;"><!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7pt "Times New Roman";">
</span></span></span><!--[endif]--><b>C</b>ontrolled usage of SMP <o:p></o:p></p>
<p class="MsoNormal"><b><u>A</u></b><u>vailable system resources<o:p></o:p></u></p>
<p class="MsoNormal">With Db2 for i SMP, the basic approach is dividing the work
for a query across multiple threads and running those threads in parallel across
multiple processor/cores to shorten the amount of time it takes to run the
query <i>(check out Mike’s nice </i><a href="https://db2fori.blogspot.com/2012/10/take-advantage-of-more-power.html"><i>graphic</i></a><i>).</i>
The Db2 engine is using more system resources in order to reduce the overall amount
of time it takes to run your query.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal">Resource usage is being traded for time. That’s why
reviewing the availability of system resources is a critical step to perform
before buying and implementing Db2 SMP. If you don’t have the system resources
to trade, then you’re not going to realize the performance benefits of Db2
SMP.<span style="mso-spacerun: yes;"> </span>For example, if CPU utilization is currently
running at 80-85%, adding Db2 SMP to use more system resources is not going to
have a positive impact on system performance.<span style="mso-spacerun: yes;">
</span><o:p></o:p></p>
<p class="MsoNormal">The system resources also need to be balanced. <span style="mso-spacerun: yes;"> </span>CPU resources are not the only system resource
consumed by Db2 SMP.<span style="mso-spacerun: yes;"> </span>Each thread used by
Db2 SMP needs a chunk of memory to perform its segment of the query and that
work can involve performing I/O on your database objects. As a result, your
system needs sufficient memory and a properly sized I/O subsystem to support
the increased CPU usage.<span style="mso-spacerun: yes;"> </span>If the query
optimizer finds that this combination of resources is not available, then the
optimizer will not use parallel methods – even if you’ve installed and activated
the Db2 for i SMP licensed feature.<o:p></o:p></p>
<p class="MsoNormal"><b><u>B</u></b><u>alanced expectations<o:p></o:p></u></p>
<p class="MsoNormal">Assuming you’ve determined that your system has a balanced
set of resources available to support Db2 SMP parallel processing. The next
step is setting the proper expectations on the type of database requests and
workloads that may run faster with Db2 SMP. Some people tend to believe that DBb2
SMP’s parallel processing will be the <a href="https://www.phrases.org.uk/meanings/silver-bullet.html">silver bullet</a>
for all of their performance problems.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal">Running a query with parallel processing adds overhead
because there is work involved in dividing a query into multiple parts and
distributing the work among threads.<span style="mso-spacerun: yes;">
</span>This startup overhead means that Db2 SMP will not be a great benefit to
short-running queries that are common in transactional workloads. Think about
your own household - it’s not uncommon for younger kids to want to help parents
with household chores, but often parents chose to do the chores themselves to
avoid the overhead of involving and training their kids. <span style="mso-spacerun: yes;"> </span>Your time would be better spent trying to tune
short-running queries than hoping that parallel processing will magically improve
performance.<o:p></o:p></p>
<p class="MsoNormal">Longer running queries are the best performance targets for
Db2 SMP because they have a longer runtime which can quietly hide the startup
overhead associated with parallel processing.<span style="mso-spacerun: yes;">
</span>If Db2 SMP can reduce a long running query from 10 minutes to 5 minutes,
no one is really going to notice that a hundred milliseconds was spent setting
up threads for parallel processing.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal">You might have noticed that I keep using queries as the
parallel processing example. That is because Db2 SMP does not enable all
database requests to use parallel processing.<span style="mso-spacerun: yes;">
</span>Queries from SQL and non-SQL interfaces can use Db2 SMP, but native
record-level access requests do not. Db2 SMP also does not support parallel
inserts, updates, and deletes.<span style="mso-spacerun: yes;"> </span>The only
type of database change operation that can use Db2 SMP is Index Maintenance –
however, this parallel processing is only done when the index updates are done
as a result of a blocked Insert or write request. Db2 SMP can also utilize
parallel processing to improve the performance of index creations and
reorganize operations. <o:p></o:p></p>
<p class="MsoNormal">When setting expectations for the performance benefits, you
need to make sure that everyone understands that it’s longer running queries
that will be the primary benefactor from Db2 SMP and that not all database
requests can use parallel processing.<o:p></o:p></p>
<p class="MsoNormal"><b><u>C</u></b><u>ontrolled usage of SMP <o:p></o:p></u></p>
<p class="MsoNormal">Once Db2 SMP has been installed on a system, it must be
activated before the Db2 engine will consider using parallel processing on a
request.<span style="mso-spacerun: yes;"> </span>There are several different
interfaces for enabling parallel processing which include: CHGQRYA CL command,
QAQQINI PARALLEL_DEGREE option, SET CURRENT DEGREE statement or the QQQRYDEGREE
system value.<o:p></o:p></p>
<p class="MsoNormal">Based on the discussion in the previous section, you should
try to limit parallel processing enablement to only those jobs or requests that
will benefit from Db2 SMP. <span style="mso-spacerun: yes;"> </span>Enabling Db2
SMP for all requests just adds overhead to query optimization and can result in
your system resources being overwhelmed if parallel processing is used. On a
transaction-oriented system, you probably should scope parallel enablement to a
limited set of requests and workloads from Db2 SMP. In contrast, you could cast
a pretty wide parallel enablement on a data warehousing system which features
longer-running queries.<o:p></o:p></p>
<p class="MsoNormal">In addition to figuring out which jobs and requests to
enable parallel processing on, you should consider when to activate parallel
processing. It could be that your server has high utilization of resources
during the day, but resources to spare during off hours.<span style="mso-spacerun: yes;"> </span>The enablement interfaces make it easy to
turn Db2 SMP on or off.<o:p></o:p></p>
<p class="MsoNormal">In terms of which parallel degree value to use, I recommend
starting with the *OPTIMIZE value.<span style="mso-spacerun: yes;"> </span>With the
*OPTIMIZE value, the Db2 optimizer tries to choose a degree of parallel
processing that results in an implementation that is a good neighbor in terms
of sharing system resources with other jobs.<span style="mso-spacerun: yes;">
</span>A more cautious approach would be setting the QAQQINI PARALLEL_DEGREE
option with a value of *OPTIMIZE 50.<span style="mso-spacerun: yes;">
</span>This setting tells Db2 to use the good neighbor approach, but dial the parallel
processing back by 50%.<span style="mso-spacerun: yes;"> </span><o:p></o:p></p>
<p class="MsoNormal">Hopefully, you now have a better understanding of when and
how to use SMP. If you still think that
the Db2 for i SMP license feature may be a fit after reading this, our Lab
Services team can provide a trial version of the feature for evaluation to help
with the purchasing decision. Also, our
team is available to help you with Db2 performance tuning or teaching you how
to tune whether it involves Db2 SMP or not – just contact me.</p><p class="MsoNormal"><o:p></o:p></p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-66951557147307082302021-01-20T11:37:00.000-06:002021-01-20T11:37:21.690-06:00A New "Routine" Habit for the New Year?<p> </p><p class="MsoNormal">Welcome to 2021! I hope that everyone’s new year is off to a
good start.<span style="mso-spacerun: yes;"> </span>A new year often brings
discussion of regeneration and rebooting to start the year with a clean slate
when it comes to developing good habits or dropping bad habits.<o:p></o:p></p>
<p class="MsoNormal">In the spirit of developing new habits for the new year, you
may want to look into starting the habit of regular regeneration of your SQL
routines.<span style="mso-spacerun: yes;">
</span>When an SQL function, procedure, or trigger objects gets created, you may or may know that behind the scenes
Db2 generates a C program with embedded SQL to implement the specified SQL
procedural logic.<span style="mso-spacerun: yes;"> </span>The efficiency of the
program generation can have a direct impact on the runtime performance of your
SQL routines.<span style="mso-spacerun: yes;"> </span>As part of the code
generation process, Db2 tries to implement some assignments and comparisons
statements with pure C code to get the best performance.<o:p></o:p></p>
<p class="MsoNormal">Over time, the smart developers in Rochester have expanded
Db2 for i’s ability to generate pure C code in more situations to speed up the
performance of your SQL functions, procedures, and triggers.<span style="mso-spacerun: yes;"> </span>However, your SQL routines can <b>only</b>
benefit from the C code generation enhancements when they are <span style="color: red;"><b>recreated</b>
</span>with the newer version of Db2 for i.<span style="mso-spacerun: yes;">
</span>This <a href="https://www.mcpressonline.com/programming/sql/techtip-streamline-your-sql-procedures-functions-and-triggers" target="_blank">article</a> shows you can how you can query the system catalogs to identify those SQL
routines that have not been recreated in a while.<span style="mso-spacerun: yes;">
</span>Or you could just choose to recreate all of your SQL routines since
that’s a relatively easy operation to try to see if it improves performance? <o:p></o:p></p>
<p class="MsoNormal">Hopefully, I’ve convinced you to add regular SQL routine
recreation after Db2 for i updates to list of new habits to develop in the new year since it’s such a
simple operation that may deliver faster performance. <o:p></o:p></p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5942052796969657606.post-47475240172307892732020-12-11T09:25:00.000-06:002020-12-11T09:25:53.298-06:00Old Habits Die Hard, even QTEMP ones<p>As the old adage says, old habits die hard. I have experienced this firsthand since
returning to the IBM i world a couple of months ago. While I was off working on Watson, IBM reached
into its marketing bag of tricks and “changed” the name of its relational
database product from <span style="color: red;"><strike>DB2</strike></span> to <b>Db2</b>. If I had a nickel for every time that I’ve
typed <strike><span style="color: red;">DB2</span></strike> instead of <b>Db2</b> since my return, I could use that money to take my
wife out for a really nice meal; that assumes restaurants being open here in
Minnesota, but I digress…</p><p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal">Another old habit that I’ve seen still being used in the IBM
i world is copying data into QTEMP and then running SQL against this temporary
copy.<span style="mso-spacerun: yes;"> </span>There are certain aspects of this
QTEMP approach that are beneficial, but there’s a real <a href="https://starwars.fandom.com/wiki/Dark_side_of_the_Force" target="_blank">dark side</a>, to use a Star
Wars analogy, from a performance perspective that should be not ignored.<span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>I’ve
written <a href="https://www.mcpressonline.com/analytics-cognitive/db2/techtip-top-3-reasons-to-avoid-mixing-sql-with-qtemp" target="_blank">this article</a> to highlight the reasons why IBM i developers should consider
ending their QTEMP habit.<o:p></o:p></p>
<p class="MsoNormal">The good news is that SQL has several different features
that allow you to get the benefits of the QTEMP approach without the
performance overhead. <span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>If you or your team need any help with a New Year’s
resolution in 2021 to break the QTEMP habit with advanced SQL, then let me
know.<o:p></o:p></p>
<p class="MsoNormal">Have a Merry Christmas and wonderful holiday season, I look
forward to talking with all of you in 2021!<span style="mso-spacerun: yes;">
</span><o:p></o:p></p>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5942052796969657606.post-1355202703536758412020-11-13T11:05:00.007-06:002020-11-13T11:07:42.305-06:00Db2 for i Comings & Goings <p><span style="font-family: arial;"> As you might have guessed from the quietness of this blog, Mike
Cain, my good friend and long-time Db2 partner in crime retired from IBM last
year and is happily enjoying retirement. </span></p><p><span style="font-family: arial;">And if you haven’t heard yet, I returned to the IBM i world this Fall
after a 5-year stint <a href="https://db2fori.blogspot.com/2015/06/time-for-new-challenge.html" target="_blank">working on healthcare solutions powered by IBM Watson</a> technologies. I’m excited
to be back working work with the <a href="https://ibm.biz/db2ilabservices" target="_blank">Db2 team in the IBM Lab Services</a> Power Systems Delivery Practice
where I get to help clients get the most out of Db2 and SQL on IBM i. With my return, I’ll be using this blog to
raise awareness about all things related to Db2 for i. </span></p><p class="MsoNormal"><span style="font-family: arial;"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-family: arial;">Speaking of new things in Db2 land, today there are new IBM i
technology refreshes available for the 7.3 and 7.4 releases that as always include
numerous Db2 enhancements. My favorite
is the new IF EXISTS clause for DROP statements which can be used to greatly
simplify your SQL database creation scripts – you can learn about how to use this
feature in <a href="https://www.mcpressonline.com/programming/sql/hands-free-sql-drops-with-new-if-exists-support" target="_blank">my article</a>. A complete list of all the Db2 and IBM i enhancements in the latest technology refresh can be found <a href="https://www.ibm.com/support/pages/ibm-i-74-tr3-enhancements" target="_blank">here</a>. </span><o:p></o:p></p><p class="MsoNormal"><span style="font-family: arial;">It's good to be back!</span></p>Unknownnoreply@blogger.com12tag:blogger.com,1999:blog-5942052796969657606.post-10284360042166833342018-04-13T06:50:00.000-05:002018-04-13T06:50:07.054-05:00Data: The New CurrencyIn this month's issue of the <a href="http://ibmsystemsmag.com/power/systems-management/" target="_blank">IBM Systems Magazine - POWER edition</a>, author Neil Tardy shares some observations and insights on the importance of realizing maximum value from data through collaboration.<br />
<br />
If you have not already read the piece, you can check it out <a href="http://ibmsystemsmag.com/power/systems-management/data-management/the-new-currency/" target="_blank">here</a>.<br />
<br />
I highly recommend you share it with your business leaders and executives, taking advantage of the opportunity to discuss and reevaluate your collection and use of data.<br />
<br />
Please reach out to me if you need assistance with the conversation, and as you persevere to do more, and do better.<br />
<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5942052796969657606.post-74190423294541593042017-12-04T21:13:00.003-06:002020-11-14T08:04:05.684-06:00Making the Case for a Database Engineer - Again<br />
Recently, I collaborated with <a href="http://ibmsystemsmag.com/" target="_blank">IBM Systems Magazine</a> author <a href="http://ibmsystemsmag.com/authors/neil-tardy/" target="_blank">Neil Tardy</a> to reiterate the importance, and the value of standing up an IBM i database engineer. The end result of this collaboration is a simple but profound article that once again, makes the case for the <a href="http://db2fori.blogspot.com/2012/11/db2-for-i-database-engineer-description.html" target="_blank">Db2 for i DBE</a>.<br />
<br />
Take a few minutes to read Neil's article, and then share it. Use it at as a good excuse to call on your managers and executives. Deliver a message.<br />
<br />
If you need help in communicating the message, or convincing them of the urgency, please reach out, I am more than happy to help illuminate this important topic.<br />
<br />
Mr. Tardy's article can be found <a href="https://ibmsystemsmag.com/Power-Systems/12/2017/database-engineer-ibmi" target="_blank">here</a>, in the December 2017 issue of IBM Systems Magazine. Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-47424106021500906832017-10-03T13:02:00.000-05:002017-10-03T13:02:11.126-05:00Interesting Db2 items in the latest TR!<br />
Today, IBM announces the latest IBM i 7.2 and IBM i 7.3 Technology Refresh (TR). <br />
<br />
The availability of the respective TRs via group PTF is scheduled for October 27, 2017.<br />
<br />
More information on the IBM i TRs can be found <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%20i%20Technology%20Updates" target="_blank">here</a>.<br />
<br />
More detailed information on the Db2 for i TRs can be found <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/DB2%20for%20i%20-%20Technology%20Updates" target="_blank">here</a>.<br />
<br />
Looking through the database enhancements, we find some very interesting items to consider...<br />
<br />
<b>Db2 Web Query</b> extends the
community of users to the true data analyst and/or data scientist. New powerful data
discovery capabilities make it even easier to
navigate through data in pursuit of understanding and actionable information. More information can be found <a href="http://db2webqueryi.blogspot.com/2017/10/new-db2-web-query-version-221-announced.html" target="_blank">here</a>.<br />
<br />
<b>Db2 for i JSON support</b> extends database capability via new publishing functions:<br />
<br />
JSON_ARRAY<br />
JSON_ARRAYAGG<br />
JSON_OBJECT<br />
JSON_OBJECTAGG<br />
<br />
Joining XML, JSON is fast becoming the go to mechanism for storing and sharing unstructured data. Composing a JSON document from the structured, relational (row and column) data via the integrated JSON functions represents expanded "data centric" development capabilities in Db2 for i.<br />
<br />
<b>SQL DML LIMIT and OFFSET</b> enhancements <i><span style="font-size: x-small;">(Hi <a href="https://en.wikipedia.org/wiki/Jon_Paris" target="_blank">Jon Paris</a>!)</span></i> including the ability to use them in both DELETE and UPDATE statements.<br />
<br />
<b><a href="https://www-03.ibm.com/systems/power/software/i/access/solutions.html" target="_blank">IBM i Access Client Solutions</a> </b>enhancements to database support. ACS is fast becoming the main tool for the IBM i database engineer. Make it part of your toolkit today!<br />
<br />
<b><a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/Alerts%20for%20IBM%20i%20System%20Limits" target="_blank">Alerts</a> when approaching database limits</b>. IBM i will produce alerts for a subset of System Limits tracking. Once per day, the operating systems will look for new occurrences where consumption of some limits exceeded 90% of the maximum allowable size. For these instances of extremely high consumption, messages will be sent to the QSYSOPR system operator message queue. Limit alerting is available for:<br />
<br />
Maximum number of all rows in a table (partition)<br /> Maximum index size<br /> Maximum encoded vector index size<br /> Maximum number of variable-length segments<br />
<br />
Trust me, when one hits a database limit unexpectedly, the fun stops. Allowing IBM i to provide an alert to the database engineer is the first step in avoiding a painful issue. By the way, all of the Db2 for i limits can be found in the <a href="https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzpdf.pdf" target="_blank">SQL Reference</a>, appendix A.<br />
<br />
_____<br />
<br />
<br />
If you need assistance with getting more value out of your data residing in IBM i, or determining how best to make use of these, or any Db2 features and functions, please reach out - we are here to help.<br />
<br />
<u>Note</u>: if you are currently running IBM i 7.1, these new features and
functions are not available to you. Please upgrade your operating system as soon as possible
to take advantage of all that Db2 for i can offer!<br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-28294633276089541762017-08-14T15:59:00.001-05:002017-08-16T09:42:23.328-05:00Are You Open to Open Source Databases?<br />
During the last 5 years, the awareness, acceptance and embrace of open source database systems has exploded. Everyone, including IBM is firmly seated on the <a href="https://www.merriam-webster.com/dictionary/bandwagon" target="_blank">bandwagon</a>. For the last 12 months, I have been illuminating the concepts of open source (non relational) database systems during the Db2 for i Technical Forums. We also continue to review the fundamentals of relational database, lest we forget.<br />
<br />
So, as a Db2 for i user, are you open to open source database?<br />
<br />
If not, should you be?<br />
<br />
Obviously the answer is: <span style="font-size: large;"><i><b>it depends!</b></i></span><br />
<br />
Before we get into exactly what it might depend on, I highly recommend you take a few minutes to go off and read an introduction to open source databases by my friend and colleague, <a href="https://www.ibm.com/blogs/systems/author/rickmurphy/" target="_blank">Rick Murphy</a>.<br />
<br />
Rick's article, "All you really need to know about open source databases" can be found <a href="https://www.ibm.com/blogs/systems/all-you-really-need-to-know-about-open-source-databases/" target="_blank">here</a>.<br />
<br />
<br />
Welcome back!<br />
<br />
<br />
If you're like me, you found Rick's overview interesting and insightful. We can also use it as a starting point to answer the question posed above.<br />
<br />
When considering the adoption of any component or solution, we must first understand our business requirements and the technical requirements. These requirements must be reconciled and prioritized. Then and only then can we effectively consider components and/or solutions that might meet our requirements, thus avoiding <a href="http://www.urbandictionary.com/define.php?term=buyer%27s%20remorse" target="_blank">buyer's remorse</a>.<br />
<br />
Now the question has transformed into: do you have business and technical requirements that can be met by an open source database?<br />
<br />
And more specifically, what flavor of open source database:<br />
<br />
Relational?<br />
Non relational?<br />
Document?<br />
Graph?<br />
GPU accelerated?<br />
<br />
A related and possibly more profound question is:<br />
<br />
<b>Can your current Db2 relational database management system, the one you already own, meet your requirements? </b><br />
<br />
hmm... if there is head scratching and shrugging of shoulders happening about now, it's time to learn more about what the <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/IBM%20i%20Technology%20Updates/page/DB2%20for%20i%20-%20Technology%20Updates" target="_blank">current version</a> of Db2 for i can do for you.<br />
<br />
<br />
<h3>
Revitalization vs. Modernization</h3>
<br />
More than a decade ago, we were introducing the idea of "modernizing" your database. Our goal was simply to get you to do more with Db2 by embracing true relational database constructs through proper modeling and design, move from application-centric programming to data-centric programming, make use of SQL as your language for interacting with Db2, migrate from record-at-a-time processing to set-at-a-time processing.<br />
<br />
What was once called database modernization, we now refer to as database "revitalization". This term more accurately reflects what needs to be accomplished. Db2 for i is, and always has been, a "modern" relational database management system. That fact that you are not using it that way should in no way diminish the capability, nor tarnish the value, of the Db2 relational database management system you have in hand today.<br />
<br />
Extending and expanding your database and data-centric programming capabilities is called database modernization. Meaning, a modern database environment is comprised of many different data storage and data processing technologies that are fit for purpose and meet requirements. This can be referred to as a <a href="https://www.martinfowler.com/bliki/PolyglotPersistence.html" target="_blank">Polyglot Persistence</a> Environment. This is a formal way of saying: store, process and access your data using the database system that best meets your needs, and using more than one is expected. In more practical terms, why try to store and process vast quantities of unstructured and unrelated data in a structured, relational database. It's better to use an unstructured, non relational database system instead.<br />
<br />
<br />
<h3>
What does your future look like?</h3>
<br />
It will definitely include the continued use of Db2 for relational data!<br />
<br />
My prediction is that it will also include handling unstructured data using non relational, open source database system(s), on premise and in the clouds. And that means, making use of an operating system other than IBM i. <br />
<br />
<br />
<img alt="" height="225" src="data:image/png;base64,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" width="400" /><br />
<br />
<br />
Let's be clear, if you are going to acquire, implement and make productive use of an <u>open source</u> database, you will use an <u>open source</u> operating system. The good news is, <a href="https://www.ibm.com/power" target="_blank">IBM Power systems</a> run Linux, AND Power runs open source databases very well indeed. <br />
<br />
Another important aspect... you are going to step up your <a href="http://db2fori.blogspot.com/2012/11/db2-for-i-database-engineer-description.html" target="_blank">database engineering</a>. Embracing various and sundry forms of data storage, data processing and data access will require a lot more database science and art. If nothing else, you will need to sort out the database designs and architectures that will best meet your requirements, and guide the users toward those sources.<br />
<br />
<br />
<h3>
A Summary</h3>
<br />
<img alt="" height="225" src="data:image/png;base64,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nwcF2jyXHiK72dtKrtel54mHZrjnulOyhRObK5mx3m+B9Dczop2toKNmjuCCdnPsaisUAYsgQWEMAattznTVGzKnws8gHr7V+eHvYTPcw0NFYLZNZob77GU9e73O7GPRb7iP2ZdQif7CU8+QH+9uHab959+ej3GhQxkYLEvuo8y2Uv5RZlcokGWrOruq/s+WDpjhXtLC8c2l3oq0wJgZ7gM6W/oILmg3x6523iJgESQojCFgNf774x+skK6UYy/hSe6VS9FXLMeU+EPAU/EvVSsnrAhYBAkKYwhYU0888cS3fvv3SlcnsiTms48s3ZlSZT8hO7xkv8pX+1eOFCVdBCyCBIUx1tbW3nw2PPvss7FGeOKJJ37mZ37mW970k9LVySyzP54+fwl+T77+7avYz8n+wVvKfvRVUaoXAYsgAWuMP/qjP/rUpz51+fLlCxcuvPvd7/6lX/ql/3wara+vnz9/PtgCTzzxxLlz5x5//PFvedNPSlcnszz7zH7tmz0zU/4X8m+SpL78Vf+enKIUFQGLIAFrjAcPHnzzm9/c29v7zGc+88wzzzz55JMfOY3e+ta3BgPWNF194AMfePzxx//Wd/5r6UpRlLNcBCyCBKyRXn311ZdeeulLX/rS1atXf+/3fm/nNHrb297WD1hNuvrABz7wwQ9+8G//g7dJV4qinOUiYBEkYI107969b3zjGy+++OKf/dmf/d9T6h3veEcnYLXT1W/91m89+eSTf+e7/710pSjKWS4CFkEC1kgPHjx47bXXXnnllZdffvn/nVLvete72gGrk66eeuqpT3ziE3/3zb8gXSmKcpaLgEWQgDXegwcP7t+/f//+/Xun1Hve854mYPXT1Sc/+ckvfOEL3/bP3yNdKYpylouARZCARdT58+enAWuarj70oQ9dunSpSVd/+Id/+NWvfvUNP/I+6UpRlLNcBCyCBCyipgFrmq5+93d/98Mf/nA7XX3ta187ODj4jh/7delKUZSzXAQsggQsos6fP//GN77x3LlzX/ziFz/2sY995CMfaaerb3zjG6+++uojj/7G0q9uiqIoSywCFkECFlEXL148d+7crVu3vvSlL33iE5+4fPnylStXmnT12muv3bt375FHLy796qYoirLEImARJGCRcvfu3Vu3bj377LPT3/pqp6vpHH8BS1GUM14ELIIELFJee+21v/7rv/7TP/3TL3zhC1/84hfb6WoymQhYiqIoAhZBAhYp9+7de/nll1944YU///M//4u/+It2upoIWIqiKAIWEQIWKQ8ePLh79+70x1RfeeWVdrqaCFiKoigCFhECFhkPHjyY/u7o/fv3OxeO+/fvf/dP/eYjj15UFEU5s+W73/abTz/99Kc//em9vT0Bi4aAxXj379+/ffv2V7/61U9/+tO/8zu/8+STT34E4Ix56qmnPvrRj37uc5978cUX79y5I2AxJWAx3oMHD+7cufPSSy89++yzn/nMZ65evfr7AGfM1atXP/vZz/7Jn/zJ17/+9bt37y77wsyqELCYy7179/7mb/5mf39/b2/vueee+yrAWfLcc88999xzL7zwwq1bt1555ZX79+8v+6rMqhCwmMt0htarr776TYCz6s6dO3fv3pWuaBOwqOABwNm27MswK0fAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqEzAAgCoTMACAKhMwAIAqOz/A0G71wtzvZf/AAAAAElFTkSuQmCC" width="400" /><br />
<br />
<img alt="" height="225" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAHCCAIAAACYATqfAAAgAElEQVR4nO3d7Y8l2UEf4Psn+A8gEfkQRRiZtUlIQisgEwx5gQazEJLgIBolaY9khAhBli11PMRCaJEHpqUIZT3GXry7Si9y8Mt8aGImbSs26+GDzYwWRDwM8rp3F1bNLFLHy6xnZ6fn5kN1V9etOqfqVN1zX7rv8+h82L1dL6fOqarz66pze0ZjAACyGi26AgAA542ABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgAUAkJmABQCQmYAFAJCZgLUsDg8PDw4OFl0LACADAWtZjEaj0Wi0v7+/6IrQZn19vegpaRiAFuchYN28eXOv4tatW/v7+2cuqaxUwLp+/frW1tbOzs6AmHJ4eLi3t7e1tXX16tXDw8NZVK/F6MTy99SVK1dGo9HW1tb8W6nFctYKILszH7D29vZGcRcuXNjb21t0HZOclWF7erUu69tB1XUvXbo0o0p27n3Je2p/f39wC8/OctYKYBbOScAqglTpypUrly5dKm/l6+vrN2/ezLjT4iFK3m2eiWE7i1rAWl9fH7yugBVzcHBQVvX69evz2enh4eHOzs6FCxdil8ZCagWwEOckYMUG2ps3b164cKG4oe/s7OTaafGLeN7R/UwM21k0HzqmR9VyCpSA1eng4OD69evzrGf5gKqlX+ZfK4CFOOcBq7Czs5P3l2YBaxrNgLW1tZWy4s2bN2srClhLJSVgAayIlQhY45Optevr61mm1gpY0ygDVvlwcZT2pbzqw0gBawkJWAClVQlY45O3Sy0vCg8ODvZPtI/36QErfZvNYTtxxQH7GraL6vanyallwLp06VI5Va7zBW45eF+4cCF9ID88PKx+ybRXKtrf3y/Wun79etk+KQGreAtWrHvz5s2Wtjo8PLx161a58XLFW7duxZapVqzXxgerHk61KZpS+qWzVr26bHDjAMzaCgWsq1evjkJTqg8PD69evVqb3FMM5NVxbjz5HaimCxcuDNhmqTps7+3tNScbxcakAfsaV16bVpePDWa3bt2qPm0qbG1tDXuKUw1Y1bd+7WsVzyBHo1Exg6dzIG/prCtXriTWsGp9fb06Rzt47Ldu3YrtNLh89di3trZqu2suE6xYrBGCu26eJzXlfLjDw8OyzZuqp1b7dTGavDSCtRrcZeUCfRsHYNZWKGCVo2P1zn54eFgMOevr61euXCl+97169WqZJ6rzrw8PD4uHLsVYuL6+fqni6tWrA7ZZKset4qHO+vr61atXixXLQbE5Jg3bV1H/6lcvi0+CzVhGsa2trcTtt6sGrHHlxV/LDLnDw8PqUNoZsIow3S4WWJtRMqjZF83MWtNsq/JHwZ2mLFP+qHkgwaq2ZKZqJasN3nk4h4eH7Y1WXhqxWg3usvJHfRsHYNZWKGCNT27H1YF8f39/fX09+Cd5ivEy+EcE2l8RDttmUbciLVUHpEIZ6abfV6zF9vf3mxGnWHh9fb35MKzMSX1fQtUCVnVKVmyVcvQt3iS2B6zr16+Xg2vtiKqPoEahZ2bVYb56XNVtFmr5oPr4pNZW1R/V2qq2zWa/ty9TPZzmORCralP10VHtk2aVyhwZPBtb+qWlVoO7bHDjAMzaagWsIqak321j49M0k9xj2ywHg9gzoSJ79RoqgvsqGiHl7V75GCP2qrF4HNL5xq2mFrCqD0titSoXKGbVtAzk1a3FHonFxt3qus1Dro30teegLSuOK8+Nam1V3WBsFlp1mea5UTZmM+50tmqpfESa+DXb2JaHBaxpumxw4wDM2moFrOLtW3pGiS0/TcCKbbMYCYLPMArFw5XEv2jQsq9iNE0JWJ1tW2aO9CqNGwFrHM8fhfLxRrl8y0BePoJqeR4WG3fLHcUaOTYHq3lELStWPy8/bKltLFsUqumkNqc7WNWmzso3lV9NqFVpWMCapssGNw7ArAlYQ5afXcBqGQvL0WvKfaU/diqedbU/1UgZwmuaI3r1FVVzICyn15QPh1oG8nKqeOKMruo7u1huaB5v7ZBTdhpcsfyw5esInTkptkDniuPJ5JceQfIGrGm6bHDjAMyagDVk+YUErMRlOvdVjoJXrlxpH1NTdleknykD1riSomq1Lb+XV3280TKQJw6o5WLV90otXyZo337KTssD7Lvi4AyRsvEy3PR69Zw3YE3TZYMbB2DWVitgtUxjOjg42NvbuzQptnxiwOq1zfQxJrhMr31V/zjCzs5O5+DUafqAVb6eq70DKsfy6rAaG8hjb+KaghEh5XCCy6Q3VGzFhQSszlei4/H44OCg5YuH0wesWXdZSgsDzMJqBazgrfbg4OBS5V+G7hxFxgkBa8A2U4aBXPUfn/y7vOUywT+aVfxoa2vrUqvOJ2E1sUk/ZWWq3/8vP6wuGRvIm9+Gi1lUwNra2qq21eA9pizQvmLndwsODg46/2jW9AFr1l2W0sIAs7BCAat82VT9sBxFtra2mglj2CvCYdtMGQaaywzbV9X169fLt1e1KfYzGpliAav5D+CUn9QqlhKw2jPfjAJW37YavMeUBdpXLFsg+L2K2lcma1/Qy/iKcNZdNrhrAKa0QgGrGK1rk7uLu3Zs9WEBa9g2O4eB8pFDc1523301laGnmRvmFrCqg3pxjLGhN+McrCwv7AaP4oP3mLJAy4rlLxuxv19QppngqbXYOVi9Wn5w1wBMaVUCVjl41x7zBD8sDQtYw7bZOQwEn8AN21fiwn3/bFiilr8LUM653tnZKRdrfuGxZSBP+bvwsa/OxXJDVXDAHjZVPLa1vsvEFmhZsfxR+z/cFFsgb8CapssGNw7ArK1KwIr9UzDtN9/2gBWbGjxsm8VaLX8HK/gEbti+goqWrC484C9vpe8o2B3V2fct3+lrGcir/7BPrALNd5GF8g8yxdatVq9aq84VY1KG/8EZIvZ5efgtf6qjfaedAaulHZpbnqbLBjcOwKyd/4B1eHhY/jszzUkexc03+Gt6OZrGAtYoMi132DbLkSD4l9yD/5Di4H0FFV8Wqy5cvpRM/APfidr/smVtYnXwj0+2BKzqnJ5gtavPQmrt1v5vOVfTVW2BlL9FHpQy/A/OEMHPE+c8xZpoPNkOsYA1is9Yb9Zqmi4b3DgAs3ZuA9bh4eGtW7fKX3wvXLgQ/Cfzit/Fm6N49d+kCwaU5nhQDlfDtll8XsSL2r+aUs5kbx5m331dv359fX29meHKUbM26JbbiY18xbu85o9atAes2j/6G4yb7a+iqt+OrFW79vcpmutWv49ZPWGq/55gcMCuVrvZVgcHB8H3rSnD/+AMEfw85X1ctR1qk7Rq/6B1y+8J5fYPDw87X+oN7rLBjQMwa+ckYLWL/Stv40p2WV9fL7LCzs5O+b28YtQMBohyQL1y5cre3t7W1lY5FA3bZrG16vO2Yt3yrxAFX6D03Vc5XK2vrxc139nZKQfdYJqp/uO+ly5d2tvbK/7gVrnWlP8WYU31aVBsCnbnXJ/2v1vRsuK4EkGa1tfXg38vtFALH0Gxf4twPgGr+qyovYa1bxHGNE/jWj4uVPsxVtthXRbbWq8WBpiFMx+wai9uSltbW1euXEl5X9P8O1Lr6+vFyFH8JcbYE5ragFqNcQO2WSxW/HdtlFpfX2+Zm9V3Xzdv3iwnZVebq+Vfa7l161ZzlWLMG/D2sGX2eqFzsnnKZOrYiTGK/3PapeCf1iy6oKxbcMAuv4gQ1PK8J/h4NXGZ2GS15orV8BpTPg2N/R2svb298i+UBjuo2XrVS6PlcAZ02eDGAZi1Mx+wcjk8PNzf39/f328Z6oKKtYLTWQZvs7rlxIFhwL7K7af/mdD9isRVFuvw8PDmzZvFU7ebN2/2+oOot27dKlYccLDlusNWXx5lA16/fr3XaVy0QN82H0/XZQDLQ8ACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAOu9ub6+NRqPR5m79k7Xt2wus1sw0j3fVLHuP727OqTLFjgpLcuwz47SvGdwgy3WxcLYJWAHVG3PdmbuDNW80J4d35g4liZFm2Xt8PgGrfhEvx7HPjNO+RsBiCQhYTcdXWJaAtfj73rI/z8ht8S2+aMvR4/F+mEvAOs5Xw0+DM3YeTVHdM3akiQQsloCA1ZTzClv8zWvxNZivVTvepuVogcUGrOnbYDlaMZmAVSNgsQQErCYB6yxbteNtWo4WELDmSsCqEbBYAgJWU8IVdvIWsb5M5cVE5EVjZI3IT09+vrk7rm0xduOY2F6lHu0vjHruJTZJreum1GiT5vZncLxxbY2f0MWn/3+8UPes6sW0wHx7vOvMrwas6najXdZ1jSTUtNh27NyY/Lyj/mkbOf1kbft2dZuT6/U6tNh6Lad9+/mWco9KOGNj1SuWjF0USV1f33u0hXrcBzraXMAiHwGrKekKO7nyqxfwxIrdN6+kCHZ8q9oOLBu7NUwutLmZPtym7KXtGwAtTRaf2BYacbIeb5/6VPfR2cWnFV7bvh1ql/aRan4tMN8eTw1Y283tJh1gZLettV1owJo40LLq/Q+tpU3inR5tjOQjbdtCayds7oY6Y3M3fASR3y3j1evbIIltLmCRj4DVlHiF1cff4Grx36MCT0hCD02Cv+cFvxV28uHp2tXbScpwm7CX48+alU5qrYRnRDM43lhtuhs/pYuDFS5rUm/2xbTAIno87QlC+wEmdlPy3tOzUUv9+was8Pk4+ND6dXrKU9n2I017rhupZLCLa5+HrpXKp8GTNnCCJtwH0tpcwCIfAasp+Re36tgTuSyjN6/IRJTGx83bR/Xj5lfx63sKDFwtw23XXiovPRKOsVNgzRkcb1Nq46d0caTCgWASMp8WWESPdwesxANM6abEvS8qYMWezgw4tGlO+0jl+12/SUsHk1Dl42BqC5ye0cdapz9Ib5DENhewyEfAaurxZLy83Lcj3wqP3Y6id9L6DyILNu4C0a+l95iR072XeQWsrMfbkNz4lR1Fu7hjY2mP0mbcAovo8a6AlXqAid2UtPfFBKw+R9B1aNOc9rHFZhewIo/tYl1/unjLtVP7UXqDpLa5gEU+AlZTryusY6pm5HYUz3CF7lEmMYhNN9xGH6gFHrIn3Z/Dx50QL6Y53rRKhBp/4pgjR9lVkXA2mW8LLKLHewesyECX3E0Je19MwIpuYsCh9T7tu8+3rismYQuRaib/XlmvQdsduPaz5AZJbnMBi3wErKZ+V1jksffktmYesOJ1zjvcxqaeJjRWfK70gHjR53gjSyQ0fr3moaPsEbAW1gKL6HEBawYBq99pn3a+tV0xiVuIrTdlwArvY2Ib6Q0iYLEAAlZTnyts4rJNH+7Td7Fkw+3u5mhUfkMnftix46gtnP6CbAYBK/UO2tHFyb9CL7AFFtHjuQLWsIHuTASs/ofWp9NTz7d4NZO30DC3J1i9A1Z3mwtY5CNgNaVfYadLxiZlxm5HKRN1WxcMvzDKPCMnPOYNmGwVqd7weDGbOVgBnV2cOgdrkS2wiB6fOmD16qa0vSfPAWqrf/pG+jdBp75TjlIiZvs9KjWkJlUzMWDNdw5WeEUBiwwErKbUK2xiucjElOi2kqZAj9NHo/b9Zx1uh4y34R0EGmEGxxurTcJxJHTxya/5kYrUHmAtpgUW0ePxq6jv9K+M8S68xWAXdtU/YSPd7956H1p6pyefb9EjTd9Cw7QBK3KYgS33uAoS21zAIh8BqynxCku71GOPtk6nN0wuf3t7LXBXSHkz1XygX51BkeeFUXRORuJdK5APRsPiRY/jDejV+O1dXNlpsyaV+i6yBRbR411nfp8D7OimgI6nMuGpOYlXbvJG2tLp4ENL7fTk8y16pD22EKnk4IAVaZ/gO8v0+0Bam4du/0IXwwhYTa3TIdseTQd/E66NUIEhN76TcZ/RKDwYrm3v1t/yTDMjp61x2m8/wZF6ba3+BmoGxxuU0PhpXXxcsclJSsEGWVwLLEWPlwv3OcCkaySg6wVfrWbFn+CIPJNqHmziRtof/w09tOTTPvF8aznS9C2EqzhFwGppn2hq7mqQtDYPhal42IY2AlZA9Lf28kKMXXDhz1uerDSv+OC9L/kxwMT2ik01ptFMMdy2v3npGhkmD3ZzNzTFZwbHm1if2gGkdnGlYhPnTbACC2qBhfV48MzveYDd10hAa7ap1qrY3W4oYMXqn7yR7verQw6tsV7LaZ9yvrUfafoWAlubKmA1996ScHrcB7ravCVgDXlZzUoTsEjWOadkFX/DO9dHrsdBvmIoAYtk8TF1+FzoM+9cBw09DrHnm9BFwCJZc9brxMereQs61wFLj7Pqhv+lEhCw6KF7dtrKOdcBS4+z4nY3nekMJmDRU+CbOKt8/znnAWs81uMAQwhYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWAAAmQlYAACZCVgAAJkJWMlub6+NRqPR5u4C9r27ORqNRmvbtxew72U0TV8ssh9XzHFTn7/zdhWux4Ue4xzOnHN5crq5LRkBK5mAtTwErDOhOG3PYVuvwvV43gPWuTw53dyWjICVbIpzd+rTfhVu6H0sKGC5ffUz3TC58NaOV2Dx1+PsG+e8ByxPsJg9ASuZgLU8BKwVsPDWFrDOc8A6lxZ+zTBJwEomYC0PAWsFLLy1BSwB64xZ+DXDJAEr5uQVffmePnLuHn88uWz8p4WJG0f7FiqVKdaqVix8A0rYYOMII5tKWab/3outbu7Wl47dF1L7Ypp159KPAclr1RdsdEbnAnl6vMcpERgmk7o+pbWTDrizapF1uyoQux6jPd7RaMX+1rZvV3cd2Vhi46R1U0szpB9j38s5oePiASu10yePP7B8fBercWNkHgSskNA9bG1zs37uRm511YU67oYJWxiPx6c3u+3AXSNlaIpsMFKrpKqntlt875vboWbuig2jUbAvzkY/DmuuhL6YfoHTfmlZJOG0CVQ7ELDauz6hsp3jZ4vudVMDVuB6TDqB68udBKyJ7UUOpXt7A/NpbbH0Y+xzOSd2XDj9pHZ6bLmJZYO7yHOZpPbZaFE3RuZFwGo6uX7C99v6wBy+QIOfNk/71C0Ef4Msa9W7SoF7y+3ttcb/h9fqGlCHHk7wWz3JfRGwhP04bK3mgRwveFKRzgWSerPzrEg4bQIHGA9G7V3f8tt42Y/BLbefFT3W7XpFmHIUaddR+kndXbfEKzf5pOo+xv6t0dn4kVMtad3jz9rvd627mO4yCViuGyPzI2A1HJ+69XM09Vu9oTtfvwe3gaVDd8PK5x2/tjc22D29IrLEkHkZ6YfTbPlp+mIZ+3HIWic3zs4XLvEdpfVmZ+f27v2WgNXZ9S3tFz3rEy6HPut2B6zEE7jzOgqGh1YdjdO1x+5zpkdP9b2cExq/eeYkr1t53Xoq0FyxXUx9maRa1I2RORKw6iKnbvJ4OcOAFZ8ukPRLe48xu2N/ve4u6YfTuOVN0xdL2Y9D1po+9yT2ZoYkF16hGbC6u34cb7+Wc77zcui1blfASj2Bu6+j8BuxNu2N07nHhOs4vaemvpybP5pi3cEBK9dlkmpBN0bmScCqi15msXM3/H69z8DcvYWuSoVvJ50bDFS1Zf1T7QPB8MOpf967L1q21bnuPPpxwFqdh5q6QEJvtp8VKQsE95wwGIc+jxxYWxjpCir91u0dsGLPiTpbvv+42N44XXtM2V96T/VrjaTG7/r/tnWjrwiDF3P/zup7FdT3WDPvGyPzJGDVxK/k0Lkbn02ZOjCnbaFHwEqsUmPJ4HSHiHjAmu5wku/I3feR5ezHAWvNM2A1qxR/aBpfoLHnmQSs8PF2PJnpt66ANYuAldT4kfST2HHhyyr8W+iAgNXcRfejx6W5MTJXAlZNn3M3+Ma816ul1C0k/8aSXKVmHSpL9H9jkedwFhSw5tePA9bKFrD69WbgrOi5QHjPq/gEq7vlcwesrj2e/ydYJ9+nGwUusf67iEq5CsZLdWNkrgSsuvTX2+El+wzMyVtInYOVXqWU7fQNWFMfTvhJ+KznYM2xH4esNcM5WF2mmdI0Hs8oYC3xHKz0Vzk12QJW6h6Hz8EaHrDmMwerWHPI++t5XyYLujEyTwJWXfB9feUBctfIFzr3Y79xJG/h5DegSKVqD7BSqlRXWzNlla5tdB1O930kvS+alrIfh6wVOZDx7e21Yt3OBYb1ZryKyQtkCViNZWPHm3KcvdaNPyhIPorElh8csGJV6NpU9zkzg4DVo/Ebh5e8bnJTRmdX5L9MlurGyDwJWE3N57nVF+jNka953jdO8eMN1K+c5C1UKtCsVfOlRscGb2+vhecghaYxTB5Ic9Xhh5N+7+7ui5Al7MdpmivQPZNjYcICbb3ZeVaknDbBIxwYsOKbDx5O8DVMU591OyrQ5wRuv44GPHjo1zjN3ks8Z3IGrB6NHz1zUi+NgHAa6dtZ/a+CpbsxMj8CVkjoGl3b3m08fA5ey2trgWfUtSXrT4q6trC7WalBvV6hMaF1g7HpnIHbSsJyffc+7nMfSe+L1OostB+HNVds0AgMl9EFunuz86xIO22qpgxY0dZuOZz0d0Mp67Z3d9pRpFxHQ97sDGicYDCILTKLgJXc+MEHdKkdFz/+QCv17az+V0G0rRd3Y2ReBKyIieuoOF+Db/cnr7fN3fgkgNhvGClbOA5Yt2ubCV9IKRts3CbCl2TzbtJ56SYfTvqDgdS+6KzOwvtxWHM19xvcaucCnb3ZeVYknja1xQcHrHG8tQOV6TN7Jn3dYAX6HkVXyw+cOtOjcSIbbzlnZhOwQnULNH70DWj3upG2PDnS+u8L/Tur71UQXGvhN0bmQsAC4FxoiapdM6UgOwELgHMhnqJ8wY75E7AAOBea88knPpavmCsBC1gJo7Nm0Q12JkW/RTgSr5g31zCwEuaXjDJZdIOdWYGv+slWLIBrGAAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAQsAIDMBCwAgMwELACAzAWshdjdHo9Fobft2vk3e3l7Lvk0WbAbnSScnUi5aElabgLUQMxg4i02ORpu7+bbJgi0iYDmRctGSsNoErIDj3zxneF/0BCtg9s2+FPocpidYZ9nKtOSKXLnQl4AVcCYD1tm3IrfpZQ9Y0NOKXLnQl4AVIGAtxIrcpgUszpkVuXKhLwFrwvGdoq4+wp1Mrgj/NLaxynLVgbO6seYtqvjp5m59e40lo+8jqtsvflosWtlC7AYZv3GmtEBaK4VaKrJKS4PGVRow0BTNmkZHicTDaVks8TAbG2ueJ41VevZg27EETqTkk7BPW3Uuk37+HNdqbft2tYKTtUvbWtaLpdmSGeo5t/M5qdNTTuke/Qjni4A1oft+MTAL1BY7GTi3N6OLHDu+zW0Httc5Loarsba9O1XASmqB3eaBtdxbEzYZ3GDbNmsNuBvawOZupIXC8aVrua7FhgeswHkSHOhSerCra+IBq/skTD3IztOj3/lTBpeJdurb7tkvlnjAmqKeczufkzq9a0s9+xHOFwErIP7g5uR+EkhcoeGh+tnt7bXTTQZ/xQx+6Sh5yei4GLsfDgtYSS0QqMvt7bWuG2t3s4fH4PY3E60NWPu83E/wt/SOTk9cbMArwlqdQrVM7sHurmk5kbpP1zynR+/zJ3Jep1dpJhdLLGBlqefMz+f0Tu9qkp73ATg3BKyA6BAYmRJT+/jkbtUyhIYS2OnHoecNnUs2b2aBrVW3OGjMSGuBYVOHOpo9/vazdUeRHFZ+nPh+rOuQUxcbFrAi76gbYaC7B7u7JimpVz/Of3r0Pn+CCbxPlWZysbQErMH1nNiqIrAAABPsSURBVNv53OMeFW0SUwhZcQJWQO/7xeQPEm4rkUXSb4fRe3fnkNEyEkwxPE/+ICFiBrQ3e3BjLT/qWCQ2ZW3oIScu1nKY8crH5yfVn2olP8Fq2f0UJ2Gu06P3+RPrzZ7dl/diSblI+9Zzbudzn3tUV5OY/c6qErACIveLyHyD0vE9J2UAjd3lmp8nL5k+2g0fMxJboNz5qNfttb3Zg4G17WeTNUlNywMPOb1l8gSs+oEPnIMVqkR6wIo9us1wevQ8f6JtmlqlGVwsLQFreD3ndT63NEng8/gpPeQ+AOeGgBVwLgJWPHvMI2CdVjH8s5D2Zg+3Z/fTQgEr8Hlb18wjYHXVIW2BzsPs230CVu6AValxSj/C+SJgBQx4lNK99oSzHbD63SMr99f2ULHMT7ASOz2lZXIGrP6vCAObr7XP1AEr8+mRcv50BZfh3TffgJXQdPM5n+Mb7B+wJiuefO7D2SdgBUw5Z3P4HKwZvCLsM61kigkcXRImS813DlbqgJSx02N7GLLVyBys7sOJ7aN1U6kn4exOj44Fut5RJXZf3oulT8BKb7o5nc/5A1Zr7eFcErACor/lpd0eYlM7b2+vdU35yBmwItUo3xEE5uXUFj35nbPy8eAbZMJ9vWPkCuw0pTbTDkiph5zcMn2e8wR6oLKJ7lpG1g/tpO05VPJJOLvTo32BlhF+qmt2uoulT8BKbrp5nc8DAlbKKT04g8MZJGCFHN+Dogmrfnu6vb0Wuoc1h555BqxQNaJzThvDQ3WuRnCKdEsL1JujpUEDx5Ta7IFGbtno8AGpb6d3LJbaGJPbDHVieEpTew8m1GaagJXn9OjfZG2PUAZfs1NfLL0CVs96zut8TgpYkf6Z6tSHc0DACpqclxm4RQYE78GRReYTsMKVPfnbzIHba83JX5zuXnLy8GJLpP52frr/7maf/W/8SYfcZ7GWwwxW/uSviY/a10rqwYSumSpgZTk9+p8/7e+o0vol/8XSL2Al1nNu53OfTg+f0oPvA3BOCFgx0d9fQzeO9l9Jm4vMKWA1Kru5O265y1crXGxnNxCwklqgsUDqTbVHs6f9HpxjQAoeUfiQBpwbLU1zHLBu19aIrpLSg11dM2XASmqEztOj5/nTPQkorV/yXix9A1ZSPed2Pvft9OApPfg+AOeBgLV6+syyhpXmYgGGErBWjzEDErlYgKEErNVjzIBELhZgKAFr9RgzIJGLBRhKwFo9xgxI5GIBhhKwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwAAAyE7AAADITsAAAMhOwyOAhwGpb9G2YpSNgMZX1n/v4I49eVhRFWdnyw+/57Xv37t2/f//o6GjRt2SWiIDFVB559PI7fvEPFEVRVrY88ujlF1544c6dO6+99pqMRUnAYriHDx8KWIqirHh55NHLX/jCF/74j//4zp079+/fX/SNmWUhYDHc0dGRgKUoyoqXRx69/IlPfOKLX/ziiy++eO/ePfOxKAhYDCdgKYqiPPLo5aeffnpvb29/f/+b3/ymgEVBwCLqU5/61BNPPNGygIClKIryyKOXn3rqqb29va9//esCFiUBi6iLFy++6U1v+tjHPnZ0dHR0dNS8awhYiqIoAhZBAhZRFy9evHjx4sbGxpUrV+7evXvv3r3aF2QELEVRFAGLIAGLqCJgjcfjjY2Ny5cv/9Vf/dXdu3cfPHhQLiBgKYqiCFgECVhElQFrPB5vbGz86q/+6ssvv1zNWAKWoiiKgEWQgEVUNWCNx+ONjY1f+ZVf+cu//MsyYwlYiqIoAhZBAhZRtYA1bmQsAUtRFEXAIkjAIqoZsMaTGev+/fsClqIoK14ELIIELKKCAWtcyVivvvrqd/zYry/87qYoirLAImARJGAN8fzzz39+BWxsbAQD1vgkY7300ktv+dFf+/7/9IWF3+AURVEWVQQsggSsId70pje9fTV86lOfijXCxsbGBz/4wTf/y//6fT//v2UsRVFWtghYBAlYQ4xG2m08Ho83Nja+9W0/+j3v/oyMNbvy2HPj8fjuMx+aycbffe3uSWee7iL4oaIosSJgESQoDCFglX7sJ/7Nm99+Yd4Z60MvvFDs/rmvNn761WfDn5/RcuOZg/F4/MpjsQWefiXQK4HDL7Yzfvbp0w8fe666znGWCn54NkpqU0zfHRPNuEQl1AJLWtXzVQQsggSFIQSsqh//yX8354xVecTSSB5PvzIej1+4dmPh99w8pYiSBy+8u7spaiaz0XEkrTRX85PYh4stRWhIyEnRpoi33sDuWKr2SWiB83M5LGsRsAgSFIYQsGrmnLGKt2YvhJ4lFGPM+fmtvSteFA+cJo63fLzXngOCSXT54mnRoSlVijfFmXoON0VptsBJ5FrSRHhuioBFkKAwxCwC1u7mqGpzN/seZmuOGevkrVkofDz23Pg8DSdd8aJoimaA+Oqz4/G4NWgG4kjkw8WW5ClowaaItc+5LMGDLc6E83NFLGcRsAgSsIaYQcC6vb129kJVzZwy1ulbs+bgceOZg8AroclXJ6fLB+JL4JVc0iBdnbr07NPHj4JOk8qHXnjheEfH0Wc8Dj+Xqmzn7jMf6owXX322XtuJ7ZweWiWMBl4kPffV4IedDVgeWnnItfbsXLGlTSZng4W2ED4rWj+MhvLgg59GN9VWT+7WtnZo2V3rj8ItUN/45DXSo7PCsX6iU5IvtCkPc/Bm51YELIIErCFmELB2N0dr27dDH5+o/vj29trEk66Jtav/c7J+aNuzMI+MVRnk6kNjMcZM3GSPZyVPOrlHN96IHY8fEyNHNMRMjmFN9e/lPftcfQ7y5LOi2Ha6ZrjHR/Ty0Kr/2wwuL1y7EfywuwFDhzZ4xVqbBAJWSy80myL0fjD0RLD+NYJ4U4RbtatbO9qhZXctP0o8GY7Dx8mH8c6KnHsTWwstc7rAjA5z+GbnWQQsggSsIfIHrN3N5lvB29trpx9W/qf6+e7m2vbtycdfp/9ze3vtJFkVy83FrDPWxCBXG1RigalxRz4eAuuBrBxCKpmma1pSM5PFdlpdrDbyhbZzUpmuGe7ButV+VH8Slvi8p7MBq4cWeiyUtGK8Taad4d5YMfREcDJA1xvhq89Wlq+t3qNb28/A4O5aa5JyMpy0SajCwV9CKl3fnLzVOD9vPHPQDEmZD3P4ZudbBCyCBKwhsges0ydSp4+lapmrTEuBLBZ5gDWR0OZpphlrcpCbeANSn+F+/B5k4gnQxDg0GbDefe3uydz52g09ftdueS/T/OW+8a7qdDgMJp4BM9zDP2r8rYfEGe6dDVgeWq2S6Su2tEn/Ge4Bgbe9oS9OTr71i7R5bfWEQ+h5BgZOreR3XrEWqJwerZ1Vz/GTb8bbv806o8OcZrPzLQIWQQLWENkDVuAFYT1Hnfx/IF9NPMCa/PnxK8I5p6zHP/zRv/ddP/KPfvq3Z5Cxwi90ilGkNsM9kD+Ob9mT+ex42LjxzEE5G2lyXInfwcMJoB4UihQYeFdVe5xT287QGe7NH9Xfcga/a9n8MLUBG3UYtmKkAoNnuB8/Aqx3xGRKaDRyy4PD2uqp3ZrQDvHdhX8Ua4FJ9RWTO6vRpO3ffpjRYU632bkWAYsgAWuI3AErNMO9FqRO/rfy2q+69sSkq66sNltFunrLD/3y2378N/7xT3/8ey9c/ac//7l8GasxRp4+5qnNcI9NaWrM8ChWOZmWXh0ju/7oQzji1NcKpbTJ6BDeTtIM9+AMrdozicaTsOCWGx8mNGA4gA5csVGBrj+y2nJWBA88utP4ZLiuGe6th5ByBsZ31/GjtBaolrbOajZy9fP273nM6DCn3+z8ioBFkIA1ROaAFQhNk0np9vba6HQ2VZmWbm+vTWau4k1j+d+ni81tknuRrr7tB9775n/2/rf88Af//r/6b2s/+8zbf+6z2QJW4K3ZyUgQfNdTE34P8spjxdA4mbSSp7cHv7dVn+HeOrE6tJ3Ov2kZfbp2/DAjNjW7tdrNv0Ta1oDhZ2wDV2zGqYTQ0N4Uk2dL9EujwUY+OYr2Ge5th5B0BkZ3l/SjtuuiXiIPRCMBa2KDrX/rYUaHmWuzcykCFkEC1hCZA1bkCVP1L2PVJmNNflp+srZ9e3ezXPZ0/Tk9vjpOV+9477f9wHvf/IPvf8sP/fJ3/sT22s/+j7e/53/lCljBQeL4IcRzCbOaGuX4kcPT5fftK9+9r/2phUAJDDydk7tPV6w/bGv8vYnW+sdeIEYm3fef4Z7QgOE3RwNXbHk2OeSsaO6lsdOuRp6sQHCGe9shpJ2Bsd2l/qi1BVI7qx6eav8iUELAyn6YGTc7+yJgESRgDeEvuTedpqt3vPfNP/i+b/8X/+WRd/7aP/ypj3zPf/xkxmlY4bdmlX+CrTJ+BEaFd1+7G/oe+91nn7tbe/DwwrUXEh6f1P6eZ2UeTH2G++TgVB8MUrYTbIrY33BvfdGW+jfcOxsw9gpv0IrNATJ5yAxFh0B4mpzoFmjkx54LfAV1cvnaDPeUbo22Q8vuWmuS2AK10t5Zob+M0HjbXnsI2hK/chzm8M3OvwhYBAkKQwhYNYF09aOPfde/vfJP/sP//L6f+/3v/4X/845f/GKOG1nHIFHLXsHvVQUnko8bg0dzay0DW9Wz1yoPw8qthV6Qxf/d5fG4+UAu3BRBoXd//We4JzRgx5857bVioAIT/3RxS1+kNkXzTzlMdlb7PPHQQ8f+3TpO2l3KjPVmC7SfrtHOivwLhsHnsuEFZnSYQze7gCJgESQoDCFgVc0rXbUNEqE/EBoYPAJ5pf69pMq9O+l1Q/VG/8pjv/gH9ReLSbO5A9uZ+DJjrCnqQss3KpA2wz2hAVu/Ytl3xXitwj3b1RTBxzldnVXbVPPPlvaY4Z5yBsZ31/ajHtdFhs5q9kXZerM/zKGbnXcRsAgSFIYQsEr//fGPzCtdKVlK2gx3RVGSi4BFkKAwhIBVeOKJJ771279XujpDJfDX0iMfKoqSWAQsggSFIUaj0dtXw40bN2KN8MQTT/zMz/zMt7ztJ6Wrs1Cq71OCf6hpMf/GiKKcgyJgESRgDfFHf/RHn/3sZ3d2di5duvT+97//l37pl/7zebS2tnbx4sVgCzzxxBMbGxuPP/74t7ztJ6WrM1CCXzAMf+tQUZR+RcAiSMAa4uHDh9/85jf39/c///nPP/PMM08++eTHz6N3vvOdwYBVpKsPf/jDjz/++N/6zn8tXSmKsspFwCJIwBro9ddff/nll7/yla9cu3bt937v93bPo3e9613NgFWmqw9/+MMf+chH/vY/eJd0pSjKKhcBiyABa6AHDx584xvfeOmll/7sz/7s/55T73nPe2oBq5qufuu3fuvJJ5/8O9/976UrRVFWuQhYBAlYAz18+PCNN9547bXXXn311f93Tr3vfe+rBqxaunrqqac+/elP/923/4J0pSjKKhcBiyABa7iHDx8eHR0dHR09OKc+8IEPlAGrma4+85nPfOlLX/q2f/4B6UpRlFUuAhZBAhZRFy9eLAJWka4++tGPXrlypUxXf/iHf/i1r33tLT/ymHSlKMoqFwGLIAGLqCJgFenqd3/3dz/2sY9V09XXv/71w8PD7/ixX5euFEVZ5SJgESRgEXXx4sW3vvWtGxsbX/7ylz/5yU9+/OMfr6arb3zjG6+//vojj/7Gwu9uiqIoCywCFkECFlGXL1/e2Ni4c+fOV77ylU9/+tM7OztXr14t09Ubb7zx4MGDRx69vPC7m6IoygKLgEWQgEWb+/fv37lz58aNG8Xf+qqmq2KOv4ClKMqKFwGLIAGLNm+88cZf//Vf/+mf/umXvvSlL3/5y9V0NR6PBSxFURQBiyABizYPHjx49dVXX3zxxT//8z//i7/4i2q6GgtYiqIoAhYRAhZtHj58eP/+/eKPqb722mvVdDUWsBRFUQQsIgQsOjx8+LD4u6NHR0e1G8fR0dF3/9RvPvLoZUVRlJUt3/2u33z66ac/97nP7e/vC1iUBCyGOzo6unv37te+9rXPfe5zv/M7v/Pkk09+HGDFPPXUU5/4xCe++MUvvvTSS/fu3ROwKAhYDPfw4cN79+69/PLLN27c+PznP3/t2rXfB1gx165d+8IXvvAnf/Inr7zyyv379xd9Y2ZZCFhM5cGDB3/zN39zcHCwv7///PPPfw1glTz//PPPP//8iy++eOfOnddee+3o6GjRd2WWhYDFVIoZWq+//vo3AVbVvXv37t+/L11RJWCRwUOA1bbo2zBLR8ACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDITMACAMhMwAIAyEzAAgDI7P8DiR7YnNjDfW8AAAAASUVORK5CYII=" width="400" /><br />
<br />
And remember, modernization and revitalization is a process, not a product, and not a tool.<br />
<br />
Modernization and revitalization involve not only applications and databases, but also:<br />
<br />
<ul>
<li>Organization Structure and Alignment</li>
</ul>
<ul>
<li>Organization Leadership</li>
</ul>
<ul>
<li>Adopting and embracing new practices and new disciplines</li>
</ul>
<ul>
<li>Multi-dimensional communication</li>
</ul>
<br />
If you want to learn more about revitalizing and/or modernizing your database environment (including the people part of the equation), please let me know. We are here to guide you, and assist with the journey!<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-5942052796969657606.post-33496582254594017332017-03-16T14:46:00.000-05:002017-03-16T14:46:04.113-05:00Using SAP on IBM i?<br />
Are you running SAP on IBM i?<br />
<br />
If so, seriously consider attending the upcoming <b>IBM - SAP on Power Summit</b> event to be held in Rochester, Minnesota USA on April 26 - 27.<br />
<br />
More details about the event can be found <a href="https://www.ibm.com/blogs/systems/running-sap-on-ibm-i-attend-the-ibm-sap-on-power-summit/" target="_blank">here</a>.<br />
<br />
Late April is a great time to visit <a href="http://w2.weather.gov/climate/calendar_outlook.php?redir=1&wfo=mpx&site=215435&lead=1" target="_blank">SE Minnesota</a>. The snow should be melted by then!<br />
<br />
<br />Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5942052796969657606.post-86870947042654828822017-02-17T11:08:00.001-06:002017-02-17T11:08:42.039-06:00A Few More ToolsIn case you missed it, you now have a few more tools for your "hero bag".<br />
<br />
Earlier this week, IBM announced the IBM i 7.3 TR2 and IBM i 7.2 TR6 with a planned availability date of March 17, 2017. If you are still running on IBM i 7.1, nothing new for your kit. Please get on with upgrading to 7.3. Even <a href="http://www.dccomics.com/characters/superman" target="_blank">Superman</a> needed a cape to be a hero... just saying<br />
<br />
As mentioned in the <a href="http://db2fori.blogspot.com/2017/02/want-to-be-hero.html" target="_blank">previous post</a>, one of the very nice things you can do with DB2 Web Query is take advantage of the SQL based IBM i services available. It is a quick and easy way to demonstrate more value. With that in mind, there are even more services available with the new technology refreshes.<br />
<br />
A couple other interesting additions are some JSON functionality and IBM i Access Client Solutions (ACS) enhancements. If you are not exploring the use of ACS to interact with DB2 for i, now is a good time start. I suggest making it part of your <a href="http://db2fori.blogspot.com/2012/11/db2-for-i-database-engineer-description.html" target="_blank">DBE</a> toolkit.<br />
<br />
With regards to JSON, document stores and unstructured, non-relational databases, look for more information and insight to come. The notion of employing "other" databases that have advantageous attributes and specific characteristics tailored to today's ever expanding data storage and processing requirements is something we need to illuminate and discuss. Stay tuned.<br />
<br />
As usual, <a href="https://www.ibm.com/developerworks/community/profiles/html/profileView.do?userid=110000AUM6&lang=en" target="_blank">Mr. Forstie</a> has done a very nice job detailing the technology refreshes for 7.2 <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%20i%207.2%20-%20TR6%20Enhancements" target="_blank">here</a>, and 7.3 <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%20i%207.3%20-%20TR2%20Enhancements" target="_blank">here</a>. Check it out.<br />
<br />
And if you have any questions or concerns as to how to take advantage of all the tools and techniques, please let me know.<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-49246561168063502312017-02-10T12:27:00.000-06:002017-02-10T15:49:25.512-06:00Want to be a Hero?If so, follow these simple steps to gain more visibility from your business leaders, and to demonstrate more value to your boss.<br />
<br />
Sound good?<br />
<br />
Ok, let's get started...<br />
<br />
<br />
Step 1.<br />
<br />
Go <a href="http://db2webqueryi.blogspot.com/2017/01/db2-web-query-ez-install-for-quick.html" target="_blank">here</a> and read how to obtain the DB2 Web Query EZ-Install. Please be sure that you understand the pre-requisites and instructions before proceeding with the installation process.<br />
<br />
<br />
Step 2.<br />
<br />
Try out some of the reports included in the package. Get familiar with the features, functions and graphical elements represented in the examples. Step back and look at the capabilities in a broad and expansive way. Think about what might be possible. Now, determine what reports best exhibit positive characteristics and attributes that will resonate with your business leaders. You want to illicit a "<i><b>wow!, we can do that?</b></i>" response. <br />
<br />
<br />
Step 3.<br />
<br />
Identify one or more key business leaders who you believe need or want more timely and insightful information. Focus on the idea of providing new and different insight, in new and different ways, visually. Make an appointment to demonstrate what you have in the package. You want 30 to 60 minutes of uninterrupted time. Your goal is to show the potential of providing a lot more capability, effectively, by using new tools and new techniques. Ultimately, you are seeking a green light to pursue a proof-of-concept or proof-of-technology using your own business' data to solve a real problem. And if they ask a question, such as: "can we incorporate <a href="https://www.ibm.com/weather" target="_blank">weather data</a> or ask <a href="https://www.ibm.com/watson/developercloud/services-catalog.html" target="_blank">Watson</a> a question", answer "yes!".<br />
<br />
<br />
Step 4.<br />
<br />
Do the demo. Show off. Be positive. Represent your ability to show real value. After the demonstration has completed, thank the business leader(s) for his or her time and attention. Declare that you will be following up with them to determine the next steps (for the proof), and that you look forward to working together in the near future. Leaders do not ask for permission. Be a leader.<br />
<br />
<br />
Congratulations!<br />
<br />
Now that you have illuminated what is possible and easily achievable, keep up the momentum. Define, design and initiate a meaningful project to do more with your data. Team up with the business leader to provide him or her with more insight and information. Be their partner.<br />
<br />
To minimize the technical and financial risks, while simultaneously increasing the probably of success, reach out to me or <a href="https://www.blogger.com/profile/13596636110050868827" target="_blank">Doug Mack</a>.<br />
<br />
We can provide all manner of direction, guidance and assistance with turning your data into actionable information. This includes preparing you for that all important first demonstration and initial impression. <br />
<br />
Fundamentally, we are here to help you succeed, and to make you a <a href="http://db2fori.blogspot.com/2015/06/yes-you-need-sandbox.html" target="_blank">hero</a>!<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-21868376652904877502016-12-23T02:00:00.000-06:002016-12-23T02:00:02.857-06:00A RetirementNo, not mine. Someone much more <a href="https://www.merriam-webster.com/dictionary/eminent" target="_blank">eminent</a>.<br />
<br />
It's with very mixed emotions that I open the blog to my good friend and long time associate Mr. Dan Cruikshank. Before I hand it over to Dan, a few words if I may...<br />
<br />
I have had the pleasure and privilege to work with, for and along side Dan for 20+ years, on four continents. As with most people who have experienced Dan's unique wit and wisdom, I am better off for it.<br />
<br />
If you have heard of database "modernization", you can thank Dan - he invented it.<br />
<br />
If you have used IBM Data Studio, you can thank Dan - he was the first to promote it.<br />
<br />
If you have applied data-centric programming technique, you can thank Dan - he championed it.<br />
<br />
Needless to say, Dan's fingerprints are all over everything we do with DB2 for i. Good for us!<br />
<br />
Without further <a href="https://www.vocabulary.com/articles/chooseyourwords/ado-adieu/" target="_blank">ado</a>, here is Dan...<br />
<br />
______________<br />
<br />
<br />
<h3>
Retirement</h3>
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:RelyOnVML/>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="false"
DefSemiHidden="false" DefQFormat="false" DefPriority="99"
LatentStyleCount="374">
<w:LsdException Locked="false" Priority="0" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index 9"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" Name="toc 9"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="header"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footer"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="index heading"/>
<w:LsdException Locked="false" Priority="35" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of figures"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="envelope return"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="footnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="line number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="page number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote reference"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="endnote text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="table of authorities"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="macro"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="toa heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Bullet 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Number 5"/>
<w:LsdException Locked="false" Priority="10" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Closing"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Signature"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="true"
UnhideWhenUsed="true" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="List Continue 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Message Header"/>
<w:LsdException Locked="false" Priority="11" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Salutation"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Date"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text First Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Note Heading"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Body Text Indent 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Block Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="FollowedHyperlink"/>
<w:LsdException Locked="false" Priority="22" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Document Map"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Plain Text"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="E-mail Signature"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Top of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Bottom of Form"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal (Web)"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Acronym"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Address"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Cite"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Code"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Definition"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Keyboard"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Preformatted"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Sample"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Typewriter"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="HTML Variable"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Normal Table"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="annotation subject"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="No List"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Outline List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Simple 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Classic 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Colorful 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Columns 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Grid 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 4"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 5"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 7"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table List 8"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table 3D effects 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Contemporary"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Elegant"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Professional"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Subtle 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 1"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 2"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Web 3"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Balloon Text"/>
<w:LsdException Locked="false" Priority="39" Name="Table Grid"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Table Theme"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" SemiHidden="true" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" QFormat="true"
Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" QFormat="true"
Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" QFormat="true"
Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" QFormat="true"
Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" QFormat="true"
Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" QFormat="true"
Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" SemiHidden="true"
UnhideWhenUsed="true" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" SemiHidden="true"
UnhideWhenUsed="true" QFormat="true" Name="TOC Heading"/>
<w:LsdException Locked="false" Priority="41" Name="Plain Table 1"/>
<w:LsdException Locked="false" Priority="42" Name="Plain Table 2"/>
<w:LsdException Locked="false" Priority="43" Name="Plain Table 3"/>
<w:LsdException Locked="false" Priority="44" Name="Plain Table 4"/>
<w:LsdException Locked="false" Priority="45" Name="Plain Table 5"/>
<w:LsdException Locked="false" Priority="40" Name="Grid Table Light"/>
<w:LsdException Locked="false" Priority="46" Name="Grid Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="Grid Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="Grid Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="Grid Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="Grid Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="Grid Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="Grid Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="Grid Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="Grid Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="Grid Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="46" Name="List Table 1 Light"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark"/>
<w:LsdException Locked="false" Priority="51" Name="List Table 6 Colorful"/>
<w:LsdException Locked="false" Priority="52" Name="List Table 7 Colorful"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 1"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 1"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 1"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 1"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 1"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 1"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 2"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 2"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 2"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 2"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 2"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 2"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 3"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 3"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 3"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 3"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 3"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 3"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 4"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 4"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 4"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 4"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 4"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 4"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 5"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 5"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 5"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 5"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 5"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 5"/>
<w:LsdException Locked="false" Priority="46"
Name="List Table 1 Light Accent 6"/>
<w:LsdException Locked="false" Priority="47" Name="List Table 2 Accent 6"/>
<w:LsdException Locked="false" Priority="48" Name="List Table 3 Accent 6"/>
<w:LsdException Locked="false" Priority="49" Name="List Table 4 Accent 6"/>
<w:LsdException Locked="false" Priority="50" Name="List Table 5 Dark Accent 6"/>
<w:LsdException Locked="false" Priority="51"
Name="List Table 6 Colorful Accent 6"/>
<w:LsdException Locked="false" Priority="52"
Name="List Table 7 Colorful Accent 6"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Mention"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Smart Hyperlink"/>
<w:LsdException Locked="false" SemiHidden="true" UnhideWhenUsed="true"
Name="Hashtag"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri",sans-serif;}
</style>
<![endif]-->
<br />
<div class="MsoNormal">
The time has come for me to retire. I wasn’t sure so I wrote
the following SQL procedure for confirmation:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">CREATE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">OR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">REPLACE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">PROCEDURE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> Am_I_Done_Yet (</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">IN</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> p_Employeer </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">VARCHAR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">(3), </span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">IN</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> p_Emp_Key </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">CHAR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">(6),</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">IN</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> p_Monthly_Retire_Income </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">INTEGER</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">,</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">OUT</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> Retirement_status </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">VARCHAR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">(40))</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">LANGUAGE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">SQL</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">SPECIFIC</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> RETMIDONE</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console"; mso-themecolor: text1;">Career</span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">: BEGIN</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">FOR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> ever </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">AS</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span>M_I_Done_Yet </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">CURSOR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">FOR</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">SELECT</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> birthdate, salary </span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">FROM</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> employee</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">WHERE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> empno = p_Emp_Key</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">DO</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">IF</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> p_Monthly_Retire_Income >= salary/12</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">AND</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> p_Employeer = </span><span style="color: blue; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">'IBM'</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">AND</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">YEAR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">(</span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">CURRENT</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">DATE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">) - </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">YEAR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">(birthdate) >= 65</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">THEN</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;">
</span></span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">SET</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> Retirement_status = </span><span style="color: blue; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">'Congratulations'</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">;</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">ELSE</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">SET</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> Retirement_status = </span><span style="color: blue; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">'Hang in there'</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">;</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-tab-count: 2;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">END</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">IF</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">;</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"><span style="mso-spacerun: yes;"> </span></span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">END</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"> </span><span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">FOR</span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">;</span><span style="font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";"></span></div>
<div class="MsoNormal">
<span style="color: maroon; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console";">END </span><span style="color: black; font-family: "Lucida Console"; mso-bidi-font-family: "Lucida Console"; mso-themecolor: text1;">Career</span></div>
<div class="MsoNormal">
<span style="mso-no-proof: yes;">
</span></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE-a6a1_I15wydTPurj6QNnwQvWH-CZ7ls7v5VrTaNcBnOXL1jLVIgkBd-wW5oi5V7KvZFS4kwRTOPKAz5IpTnqeOOSUStuD2MJ_7POVfoCHQuYpHj2G1yTwCMZrNGytEjg5PCE1P0iRNv/s1600/Dans+results.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE-a6a1_I15wydTPurj6QNnwQvWH-CZ7ls7v5VrTaNcBnOXL1jLVIgkBd-wW5oi5V7KvZFS4kwRTOPKAz5IpTnqeOOSUStuD2MJ_7POVfoCHQuYpHj2G1yTwCMZrNGytEjg5PCE1P0iRNv/s1600/Dans+results.gif" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It appears I have met my goals.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In case you’re wondering, the
above code and corresponding result were accomplished using the Data
Perspective which comes with IBM Data Studio (and other IBM products).</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I was fortunate enough to enter the IT industry at a time
when the costs of owning a computer were drastically cut. The computer industry
was in the midst of a revolution, and IBM Rochester was at the forefront with
the introduction of the System 3. This system introduced the RPG language to a
new breed of computer programmers; many like myself, did not have college
degrees. Others had degrees in non-IT areas, for example accounting. I believe
that there was one thing that we all had in common: we were the first wave of
computer nerds. We were shy, introverted, acted inappropriately at times, were
picked on and made fun of. The simplicity of the RPG programming language gave many
of us a way to become heroes. How satisfying was it to take someone’s idea,
concocted during a coffee or lunch break, and deliver a result almost
overnight. We referred to that as “from napkin to code”. Today we call it
“agile”.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The System/38 was called the programmers “dream” machine. It
provided an interactive interface for coding, compiling, testing and deploying
programs called the “Programmers Menu”. Who would ever need more than that? Then
came the AS/400 and the Program Development Manager (PDM). Then came WebSphere Developer
Studio client. Then came Rational Developer for i. Then came IBM Data Studio.
Then came… <span style="mso-spacerun: yes;"> </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I believe that RPG, DB2 and SQL were three of IBM’s greatest
inventions. I worked hard to master all of them, and was fortunate enough to share
my knowledge and expertise with IBM customers worldwide. I never considered
myself to be a fantastic programmer. I was always better at fixing someone's program than writing my own. You know what they say “Those that can do, do. Those that can’t do, teach”.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
My career has been filled with many ups and downs. Let me share with you a few ups:</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span>Sometimes
you must move on, in order to move up.</div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span>When
someone steps aside, be ready to step up.</div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span>Do not
be afraid to speak up, but learn when to shut up.</div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span>Giving
in is not the same as giving up.</div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span>The
tallest person in the room is the one who stands up.</div>
<div class="MsoNormal">
<span style="mso-tab-count: 1;"> </span><a href="https://www.youtube.com/watch?v=OunVR-yfsds" target="_blank">Fresh up with 7 Up</a>.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I would like to thank all of the people who have benefited
me in some way throughout my career. The list is much too long to show here, as
it includes everyone I have ever worked with. You have all helped in more ways
than you ever know. I only hope that the advice and guidance I have provided
to you over the years has been more beneficial than not.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I am also grateful to those who have allowed me to do so much in
my career, especially those I have worked with at IBM. Working for IBM is one
of my greatest achievements, and<span style="mso-spacerun: yes;"> </span>I am proud
to be retiring as an IBM employee.</div>
<div class="MsoNormal">
<br /></div>
<br />
<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-5942052796969657606.post-75238957133151293072016-11-08T15:43:00.000-06:002016-11-08T15:43:32.313-06:00The Data Model MattersFor a couple of years now, the major theme of our DB2 for i Technical Forums held around the world has been: design it, build it, secure it, tune it.<br />
<br />
During the "design it" portion of the Forum, we focus extensively on the data model. No surprise. Our vast experience tells us that, when it comes to implementing a solution that is flexible, extensible, agile and scalable, the data model matters. <br /><br />Historically speaking, the S/38, AS/400, iSeries and IBM i development communities have embarked on building data centric applications without the presence of a database administrator. While this has in some ways been an advantage, it has also resulted in a gap. Specifically, a gap in the understanding of the science and art of relational data modeling.<br /><br />To fill this gap, we routinely recommend standing up an <a href="http://db2fori.blogspot.com/2012/11/db2-for-i-database-engineer-description.html" target="_blank">IBM i database engineer</a> (DBE). One of the important responsibilities of the DBE, is to design, implement and support a proper data model.<br />
<br />
When it comes to getting the most out of DB2 for i, the data model
matters. By telling DB2 about
your data centric business rules, the data element attributes, and the
relationships between sets, DB2 can do more work on your behalf. This
results in higher productivity, greater efficiency and better
performance.<br />
<br />
Define your date column as a DATE! By telling DB2 the column value represents a date, the database management system knows more and can do more. The <a href="https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_73/db2/rbafzpdf.pdf" target="_blank">SQL Reference</a> is filled with date manipulation functions. Why would you ever write one when it's already provided - assuming of course you define your data elements appropriately.<br />
<br />
When it comes to formulating and executing SQL queries, the data model matters. SQL is set oriented. As such, the proper definition of sets and their various relationship(s) are fundamental to developing good set based operations. Sure, DB2 can overcome issues with a poorly defined and implemented data model; but at some point, the amount of work it takes to connect the dots to find the answer to your crazy procedural query will overwhelm everyone's patience and budget.<br />
<br />
When it comes to handling very large data sets and over coming limits to growth, the data model matters. Performance and scalability are two different things; and they do not necessarily go hand in hand. As the data set grows, it is not guaranteed that the performance and throughput will stay in the acceptable range. Relational data modeling best practices can mitigate the risk of growing data sets, as well as provide solutions to over coming database size limits and restrictions. Designing (the data model) for growth and scalability will also pay dividends when your business decides to makes an acquisition resulting in the inevitable large leap in data quantity and transaction processing volumes.<br />
<br />
A sound data model also matters when it comes to data governance and control. In other words, properly securing your rows and columns is made much easier with a good data model. By applying relational concepts and normalization rules, the task of isolating and protecting personal identifiable information (PII) with DB2 RCAC becomes much easier. On the other hand, carelessly and needlessly propagating PII data throughout the database makes it virtually impossible to secure the sensitive elements in any effective way.<br />
<br />
<br />
A <a href="http://www.merriam-webster.com/dictionary/pop%20quiz" target="_blank">pop quiz</a>: is it easier to protect your tax ID stored in one table, or your tax ID stored in 1,000 different tables?<br />
<br />
<br />
Best practices when defining and implementing your relational data model include:<br />
<ul>
<li>Follow the normalization rules (<a href="https://en.wikipedia.org/wiki/Third_normal_form" target="_blank">3rd normal form</a> is a good starting point)</li>
<li>All columns have an appropriate type, length, precision and scale</li>
<li>Use only one key column to represent the relationship between any two tables</li>
<li>Be consistent with column naming conventions</li>
<li>Define and use primary, unique, referential and check constraints</li>
<li>Define and implement an initial indexing strategy</li>
<li>Define and implement views to assist the database users</li>
<li>Document the model and keep it current (<a href="http://www.ibm.com/developerworks/downloads/im/data/" target="_blank">IBM Data Studio</a> makes this relatively easy)</li>
</ul>
<br />Now, this all sounds well and good when designing a new data model. But what if you are facing a legacy application with a poorly designed data model decades old?<br /><br />This is where our targeted database modernization and re-engineering strategy comes into play!<br /><br />Database modernization and re-engineering, if approached in a financially and technically responsible manner, will provide increased flexibility, extensibility, agility and scalability.<br /><br />If you want to know more about designing and implementing a new database, or if you are faced with the task of enhancing an existing database to meet new requirements, please reach out. We invented the art of modernizing AS/400 databases, and we can help with reinventing yours.<br />
<br />
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-5942052796969657606.post-36409052627426006142016-10-11T07:00:00.000-05:002016-10-11T07:14:55.459-05:00Are You Falling Behind?Increasingly, we are finding that IBM i installations are falling behind. In many cases, perilously so...<br />
<br />
Recently, we engaged a client who only applies PTFs when there is an actual problem encountered. That means, almost never. In other words, no proactive or preventive maintenance. No periodic updates or upgrades. And yes, they do have several planned maintenance windows available per year.<br />
<br />
Another set of clients have just migrated to IBM i 7.1. That, after waiting several years to finally get "current". Unfortunately, they are miles away from current.<br />
<br />
More and more we see IBM i shops who are in some kind of <a href="https://en.wikipedia.org/wiki/Analysis_paralysis" target="_blank">analysis paralysis</a> as they attempt to make a decision to stay with IBM i or move off to some "other" platform. All the while their business is changing, expanding and branching out in ways that require a non-linear approach to information management and data processing. My experience shows that virtually all of these shops have business requirements that can be met very nicely using <u>current</u> technology available via the combination of Power+IBM i+DB2. Technology that is readily available to them, I might add.<br />
<br />
Presently, the IBM i user community enjoys significant stability, as well as tremendous flexibility when it comes to OS and RDBMS features and functions. Not only are there three OS releases available and supported (7.1, 7.2 and 7.3), there are also periodic enhancements available in the form of a technology refresh or update. While a given update is typically delivered as a robust set of PTFs, you certainly should not view a <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%20i%20Technology%20Updates" target="_blank">Technology Refresh</a> (TR) as a simple set of "fixes".<br />
<br />
<br />
<h3>
Hey Look, Another Technology Refresh!</h3>
<br />
Today, IBM is announcing yet another technology refresh, specifically <b>7.3 TR1</b> and <b>7.2 TR5</b>.<br />
<br />
Alas, if you are using 7.1, you are falling behind. There is no TR available for the n-2 release.<br />
<br />
The general availability for the 7.3 and 7.2 updates should be in about a month, so you have time to begin your testing and installation planning process.<br />
<br />
From the database point of view, what are some of the items we can expect from this TR?<br />
<br />
As usual, the focus is on increasing capabilities around data centric processing and enhancing database engineer productively...<br />
<br />
JSON_TABLE<br />
A new table function which works very much like XML_TABLE, allowing for <span class="st">JavaScript Object Notation data to be returned as rows and columns.</span><br />
<br />
<span class="st">INCLUDE SQL<br />Provides a way to include (pull source code into) another SQL procedure/function.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">PERCENT_RANK as an ordered OLAP specification (7.3 only)</span><br />
<span style="font-family: inherit;">A distribution function that returns a relative percentile rank of a row within an OLAP window.</span><br />
<span style="font-family: inherit;"><br /></span>
<br />
<u><span class="st">Additional Services (via SQL)</span></u><br />
<br />
<span class="st">HISTORY_LOG_INFO</span><br />
<span class="st">Retrieve data from QHST </span><br />
<br />
<span class="st">JOB_INFO</span><br />
<span class="st">Retrieve a list of jobs by user(s)</span><br />
<br />
PARSE_STATEMENT<br />
<span class="st">Analyze an SQL statement and extract information about the DB object(s), column(s) and UDF(s)</span> <br />
<br />
<u>Misc. Performance Improvements</u><br />
<br />
LPAD/RPAD functions<br />
QSYS2.OBJECT_LOCK_INFO view<br />
QSYS2.SYSPROGRAMSTAT view<br />
QSYS2.SYSPROGRAMSTMTSTAT view<br />
QSYS2.OUTPUT_QUEUE_ENTRIES view<br />
QSYS2.OUTPUT_QUEUE_INFO view<br />
UDF in-lining (more complex UDFs can now be inline)<br />
STATEMENT DETERMINISTIC (a new form of DETERMINISTIC for functions)<br />
<br />
IBM Access Client Solutions - Database GUI<br />
Enhancements to SQL Performance Center, Visual Explain and Run SQL Scripts<br />
<br />
_____________<br />
<br />
<br />
For more details on the new DB2 for i Technology Refresh, the illustrious <a href="https://twitter.com/forstie_ibmi" target="_blank">Mr. Scott Forstie</a> has what you need <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/IBM%20i%207.3%20-%20TR1%20Enhancements" target="_blank">here</a>.<br />
<br />
For more information on all various TRs, go <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/IBM%20i%20Technology%20Updates/page/DB2%20for%20i%20-%20Technology%20Updates" target="_blank">here</a>.<br />
<br />
_____________<br />
<br />
<br />
<h3>
What Should You Do Now?</h3>
<br />
Regardless of any future and far off "migration plans", get current with PTFs and TRs. That includes HIPER, Group and the latest Technology Refresh for your particular release, even 7.1.<br />
<br />
While the various IT "leaders" are off trying to identify your future platform, you can get on with solving current business problems and providing immediate value with IBM i.<br />
<br />
To facilitate keeping current (and relevant), stand up a DB2 for i sandbox. This can be a small but balanced LPAR or stand alone system running 7.3 plus TR1.<br />
<br />
Take some dedicated time every week to discover, experiment, and try new database features and functions. Show off your work to the higher ups. Be a <a href="http://www.merriam-webster.com/dictionary/hero" target="_blank">hero</a>.<br />
<br />
Please secure the personal identifiable information (PII) stored in your files and tables.<br />
<br />
Start by asking, and answering the following question: <b> </b><br />
<br />
<b>Who has *ALLOBJ authority on any system where PII is stored?</b><br />
<br />
After you get over the shock and awe of finding out just how exposed you are, embark on the serious journey of securing the at risk data. Begin with the correct application of IBM i object based security, then continue with separating roles and responsibilities (the security officer and the database engineer should have different levels of authority based on their respective responsibilities).<br />
<br />
Take a good look at using DB2 Row and Column Access Control. It will allow you to apply a more granular level of security on the sensitive data. DB2 RCAC is available in 7.2 and 7.3, so yet another reason to get current.<br />
<br />
Identify, train, and support an IBM i database engineer. Ensure this person has not only the responsibility, but also the authority to do the job.<br />
<br />
The database engineer is the <a href="http://www.merriam-webster.com/dictionary/font" target="_blank">font</a> of knowledge and skill around DB2 for i features, functions and benefits. The database engineer will not only keep your organization current, but also be the trusted advisor for when and how DB2 technology can be applied to solving data centric business problems!<br />
<br />
Start using modern tools and modern techniques immediately.<br />
<br />
Go get <a href="http://www-03.ibm.com/software/products/en/data-studio" target="_blank">IBM Data Studio</a> and learn to use it.<br />
<br />
Go get <a href="http://www-03.ibm.com/systems/power/software/i/access/solutions.html" target="_blank">Access Client Solutions</a> and try it out.<br />
<br />
And finally, do more with your data, right now.<br />
<br />
Go get <a href="http://db2webqueryi.blogspot.com/" target="_blank">DB2 Web Query</a>, create some compelling visualizations and demonstrate the value to your business leaders. You can use that IBM i 7.3 sandbox to check out the advanced aggregation functions and OLAP specifications. Again, be a hero.<br />
<br />
If you need more information or assistance with DB2 for i features and/or data centric programming technique, please do not hesitate to reach out.<br />
<br />
<br />
<br />Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-5942052796969657606.post-51081513712932860782016-09-19T13:15:00.000-05:002016-09-19T13:15:04.992-05:00Doug Mack joins the BlogosphereI am excited to see that my long time colleague and good friend Doug Mack has joined the blogging community! <br />
<br />
Doug and I began working together some time back in 1994. That was the period during which the idea of warehousing data and performing analysis on consolidated information began hitting the market.<br />
<br />
Also back then, Doug was instrumental in creating and leading the AS/400 Data Warehousing movement, telling audiences all over the world that, "yes, you can use AS/400 for business intelligence". It should come as no surprise, that today Doug continues to provide insight through his discussion of query modernization and report re-engineering, all in pursuit of delivering more value to your business.<br />
<br />
I invite you to visit and follow Doug's new <b><a href="http://db2webqueryi.blogspot.com/" target="_blank">DB2 Web Query blog</a></b>, where he will be sharing knowledge and know how on getting the most value out of your IBM i data. <br />
<br />
And yes, you can use IBM i for business intelligence.<br />
<br />
Welcome Doug!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-40195597991497196692016-05-11T11:19:00.000-05:002016-05-11T11:26:54.548-05:00Reinvigorating IBM i Application Development <span style="font-family: inherit;"><span style="font-size: small;">The first thing you will notice about the conversation below is that it is presented in Spanish.</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;"><a href="https://en.wikipedia.org/wiki/Colombian_Spanish" target="_blank">Colombian Spanish</a> to be exact. This is due to the fact that the dialog is between two wonderful people from the enchanting country of <a href="https://en.wikipedia.org/wiki/Colombia" target="_blank">Colombia</a>; namely Hernando of IBM and Didier of <a href="http://www.redsis.com/" target="_blank">Redsis</a>. </span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">The occasion for this dialog was our recent <b>DB2 for i Technical Forum</b> held in Bogota during the same week in April when IBM i 7.3 was announced.</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;">For those of us who are <span style="font-family: inherit;">un</span>able to read Spanish, please use your favorite <a href="https://www.google.com/?gws_rd=ssl#q=translation+spanish+to+english" target="_blank">translation tool</a> to convert to your language of choice. Señor Bedoya ensures me that the meaning and main points will shine through.</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;">Before I turn over this <a href="http://www.merriam-webster.com/dictionary/invigorate" target="_blank">invigorating</a> post to Hernando, let me share a simple but profound piece of wisdom with you...</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;"><b> When it comes to acquiring knowledge and skill,</b></span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b> both the teacher and the student must be ready. </b></span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;">_________</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<span style="font-family: inherit;"><span style="font-size: small;">En Abril 12, 2016, IBM hizo el anuncio de la Version 7.3 del sistema operativo IBM i (para algunos OS/400). Precisamente ese día Michael Cain y yo estábamos dictando el tercer Foro Técnico de DB2 for i que Redsis, socio de negocios de IBM en Colombia patrocinaba. Se aprovechó esta oportunidad para hacer el anuncio de las bondades de esta nueva versión que entre otras incluye muchas novedades en DB2 for i. (Pueden ver el BLOG de Michael Cain que publicó recientemente de este tema).<br /><br />El foco del Foro técnico de DB2 for i se centró en Modernización. El evento era de 3 días donde no solo se cubría las novedades de 7.3 pero se cubría temas de modernización desde la base de datos, aplicaciones e interface gráfica. Nosotros (Michael Cain y yo) cubrimos la modernización de la base de datos y Redsis cubrió la modernización de las aplicaciones e interface gráfica. Redsis utilizo un enfoque práctico para ilustrar los conceptos y nos llamó la atención ver que la persona que conducía la demostración era un joven aparentemente recién graduado de la Universidad. Didier lleva un año trabajando en Redsis y nos parecía increíble ver la naturalidad con la que usaba: Rational Developer for i, programación en Free RPG (si escucharon bien....RPG!!) y entendía perfectamente el concepto de DDS.<br /><br />Por esta razón decidimos hacerle una entrevista al final del evento.<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Hernando</b>: Didier como ingresaste a Redsis<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Didier</b>: Ingrese a Redsis antes de graduarme de la Universidad con la expectativa de programar en tecnologías Web y en lenguaje Java. Pero no fue así...<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Hernando</b>: ¿Cómo así? ¿Qué paso?<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Didier</b>: Conocí a mi jefe (Octavio Bustos) y me asigno a conocer unas herramientas de modernización que Redsis representa de la compañía Profund Logic para aplicaciones desarrolladas en IBM i . Y rápidamente estaba sentado ante el reto de modernizar una pantalla verde.<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Hernando</b>: ¿Y cuál fue su primera impresión o reacción?<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Didier</b>: Honestamente pensé que me había equivocado de empresa. Todo me parecía muy complicado:</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br />• Archivos fuentes<br />• DDS<br />• Sin la posibilidad de copy y paste y mucho menos drag and drop<br />• Un lenguaje de programación críptico que arroja muchos errores si ubicas un carácter en la posición que no es.<br />• Un lenguaje de procesos que llaman CL que parece ingles abreviado<br /><br /><br /><b>Hernando</b>: ¿Y cómo lograste salir de este shock cultural?<br /> </span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>Didier</b>: Octavio me instalo Rational Developer for i (herramienta grafica para editar, programar y hacerle pruebas a los programas) y empecé a ver las cosas diferentes. El también me explico los conceptos básicos del sistema operativo, ahora lo veo como una gran amigo donde no me tengo que aprender las cosas de memoria solo pensar que verbos (acciones) y objetos sobre los cuales estas se realizan. Yo que recibí formación en pantalla negro con blanco (linux), ahora me siento más cómodo en las pocas ocasiones que debo usar la pantalla negro con verde. Por otro lado estamos usando Free RPG que es un lenguaje moderno con mucha similitud al javascript. Los dos son clave para las iniciativas de modernización que estamos adelantando. Hoy Rational Developer for i es mi mano derecha y me entusiasma mucho la modernización Web en IBM i. La curva de aprendizaje del lenguaje se hace tan fácil cuando se usan herramientas gráficas y se usa Free RPG. <br /> </span></span><br />
<h4>
<span style="font-family: inherit;"><span style="font-size: small;">La Conclusi</span></span><span style="font-family: inherit;"><span style="font-size: small;"><span style="font-family: inherit;"><span style="font-size: small;">ón</span></span> </span></span></h4>
<br />
<span style="font-family: inherit;"><span style="font-size: small;">Fue una experiencia interesante el poder ver como la juventud de IT con las herramientas adecuadas pueden aprender RPG moderno de la misma manera que aprenden JAVA, PHP, o cualquier otro lenguaje moderno.</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;"><b>La realidad es que el desarrollo en IBM i puede ser tan moderno como ustedes quieran hacerlo. </b> </span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">Existe una entrevista que le hicieron a Michael Cain en el último <a href="https://systemideveloper.com/summit/conferences.html" target="_blank">DB2 and RPG Summit</a> con respecto a este mismo tema como obtener personal adiestrado en RPG. La entrevista la pueden ver en el siguiente <a href="http://www.ibmsystemsmag.com/ibmi/trends/iTALK-WITH-TUOHY/cain-new-programmers/" target="_blank">aqui</a>.</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"></span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-51816570658074043122016-04-12T18:36:00.000-05:002016-04-12T18:36:12.351-05:00Significant Upgrades to the Database Engine!<br />
We quite often refer to DB2 for IBM i as the "database engine". On this particular day, I <a href="http://www.merriam-webster.com/dictionary/ruminate" target="_blank">ruminate</a> on why the word "engine" always seems to fit, and more importantly why it actually describes what you have sitting inside your IBM i system.<br />
<br />
The basic definition of an "engine" goes something like this:<br />
<br />
<i> <b>A machine with moving parts that converts power into motion.</b></i><br />
<br />
In computer programming, an engine is a program that performs an essential function or functions. <br />
<br />
An engine can be a central focal point in a system, subsystem, or application. "Engine" can also be used to describe special-purpose algorithms. <br />
<br />
Hmm... this sounds a lot like the integrated relational database management system we call DB2 for i. <br />
<br />
And for an even more interesting connection, consider that <b>in 1844</b>, <a href="https://en.wikipedia.org/wiki/Charles_Babbage" target="_blank">Charles Babbage</a> named his stored-program computer the "Analytical Engine"!<br />
<br />
<b>Why do we build and employ engines?</b><br />
<br />
Engines provide us with many positive advantages:<br />
<ul>
<li>Strength</li>
<li>Speed</li>
<li>Power</li>
<li>Efficiency</li>
<li>Repeatability</li>
<li>Predictability</li>
<li>Progress</li>
</ul>
All of which allows us to move forward in a direction and manner that is likely impossible without the engine.<br />
<br />
Simply put, engines allow us to accomplish amazing things. Literally and figuratively speaking, engines push us forward by increasing our capabilities.<br />
<br />
Personally, I'd like to add to the list of advantages, "lazy and easy". As in, I can be lazy, because it's easy!<br />
<br />
<br />
<h4>
Your Data-Centric Development Engine</h4>
<br />
Whether we take the traditional definition or the computer science definition, <b>DB2 for i </b>surely represents an engine for innovation. But this benefit is manifested only when the engine is actually used.<br />
<br />
When we talk about "data-centric" development, we are referring to designing, programming and implementing solutions in which the database engine plays a major role.<br />
<br />
Technically speaking, data-centric development relies on using the advanced features and functions incorporated within DB2 for i, and generally made available via SQL.<br />
<br />
Financially speaking, data-centric development means being more efficient and productive by making use of algorithms and capabilities that you already possess.<br />
<br />
Assuming you could, why would you spend any time, energy and money reinventing advanced technology, when that technology is sitting in front of you, ready to use?<br />
<br />
But wait! I don't see the database capability needed to help solve my business problem.<br />
<br />
Look again...<br />
<br />
<br />
<h4>
Significant Updates to DB2 for i</h4>
<br />
With the April 12, 2016 announcement of IBM i 7.3, we have another set of exciting database features and functions at our fingertips. The enhanced IBM i 7.3 capabilities extend the benefits of data-centric development via SQL, DB2 for i, and IBM i running on Power.<br />
<br />
For the past few years, my friends and family have been illuminating the importance of expanding your data-centric applications in 3 fundamental areas:<br />
<ul>
<li>Security </li>
</ul>
<ul>
<li>Analytics</li>
</ul>
<ul>
<li>Mobility</li>
</ul>
No surprise, these areas represent common and high priority business requirements. They also represent "low hanging fruit" with regards to providing more value to your clients, customers and partners. And IBM i provides significant assistance in the pursuit of strategic initiatives involving the securing of data, analyzing of data and delivering that data to mobile consumers.<br />
<br />
Keeping with the theme of our "database engine", I want to call out a couple of the areas that IBM i 7.3 can power your business forward.<br />
<br />
<br />
<h4>
Time travel with DB2 for i Temporal Support</h4>
<br />
The business requirement is straightforward:<br />
<br />
Maintain all current transaction states, retain all previous (i.e. historical) transaction states, and provide the capability to easily retrieve the appropriate current and/or historical transaction state for a particular time period. Oh, and don't mess it up! <br />
<br />
Traditionally we have addressed the business requirement (i.e. the need for point in time data management) by implementing some sort of homegrown solution. These solutions require crafting time aware data processing logic in application code or customized procedures and triggers. This application-centric technique has many disadvantages: <br />
<ul>
<li>Implementing time-aware processing logic with integrity and accuracy is very complicated.</li>
</ul>
<ul>
<li> Application development and on going maintenance is costly and time consuming.</li>
</ul>
<ul>
<li> Application performance and scalability is often not optimal.</li>
</ul>
<ul>
<li> Due to a lack of standards, not to mention developer nuance, different applications will have different implementations of the time based processing logic.</li>
</ul>
Sounds like a great job for our database engine!<br />
<br />
With 7.3, DB2 for i provides the following temporal capabilities: <br />
<ul>
<li>Transparently maintain a system history of all data changes with system-generated time stamps, which are managed as system time periods </li>
</ul>
<ul>
<li>Allow applications or end users to formulate simple queries that access data as of any desired point in the past, with very high precision </li>
</ul>
<ul>
<li>Support based on the <a href="https://en.wikipedia.org/wiki/SQL:2011" target="_blank">SQL:2011 standards</a>, which dramatically reduce query complexity</li>
</ul>
<b>Why Design and Implement a Temporal DB?</b><br />
<br />
The coding of complex temporal operations via SQL is much simpler, which increases developer productivity and reduces the cost to implement and maintain time aware applications by up to 45 times, as shown by an IBM study. DB2 temporal data management helps improve data consistency and data quality across the enterprise.<br />
<br />
<b>Why Use a Temporal DB?</b><br />
<br />
The use cases for DB2 temporal data management include the ability to track and analyze changes in your business by easily comparing data from two periods in time. It also represents increased accuracy in time based reporting allowing for tracing when a row was modified, as well as who modified it. This can provide a cost-effective means to address auditing and compliance issues. And with the appropriate data modeling, DB2 for i can also drive the capture of row history in an environment with slowly changing dimensions.<br />
<br />
<b>How Does a Temporal DB Work?</b><br />
<br />
After creating a correctly defined "history" table like the base "current" table, there are 3 functions of the DB2 temporal engine:<br />
<br />
<ol>
<li>Maintain the existence, linkage and integrity of the history table</li>
<li>Capture and store all of the before and after row states, over time</li>
<li>Provide access to the current row and/or historical row(s), based on time period</li>
</ol>
<br />
<b>A simple illustration...</b> <br />
<br />
After four transactions to a row (t1 insert, t2 update, t3 update, t4 delete) only the current state is available.<br />
<br />
<img alt="" height="286" src="data:image/png;base64,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" width="320" /><br />
After four transactions to a row (t1 insert, t2 update, t3 update, t4 delete) both the current state and the previous states are available. <br />
<br />
<img alt="" height="296" src="data:image/png;base64,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" width="400" /> <br />
<br />
<u><b>An important note!</b></u><br />
<br />
Please do not confuse temporal database support with database logging (i.e. journaling). They are two different things, with very different requirements and restrictions. Simply put, database logging does not represent relational data that can or should be queried as a normal part of the business process. Rather, database logging primarily supports transaction isolation and recovery, and secondarily support change data capture in support of transaction replication. The difference seems subtle to be sure, especially given all of the various and historical uses of IBM i journals.<br />
<br />
<br />
<br />
<h4>
More Data Analysis with DB2 for i OLAP </h4>
<br />
It's all about the data. Specifically, it's all about analyzing the data quickly and efficiently to provide information and insight that drive decisions and provide direction. Having a database engine that supports the ability analyze data quickly and efficiently is an advantage. DB2 for i provides such an advantage.<br />
<br />
<b>New OLAP Specification Extensions</b><br />
<br />
In IBM i 7.3, the SQL OLAP specification is extended with support for a new class of calculations called moving aggregates. These specifications support important OLAP functionality in the database engine such as cumulative sums and moving averages by using a logical set of rows within a "window". A window specifies a partitioning of rows, an ordering of rows within partitions and an aggregation group (of rows). The aggregation group tells the database engine which rows of a partition set, relative to the current row, should participate in the particular calculation.<br />
<br />
If you are not familiar with, or don't remember OLAP specification functions that have been available since 5.4 (RANK, DENSE RANK, ROW NUMBER), recall that OLAP specification functions compute a single value for current row based on some or all the rows in a defined group.<br />
<br />
In DB2 for i, OLAP specifications provide the ability to return ranking, row numbering, and other aggregate function information as a scalar value in a query result. It's the "other aggregate function" piece that is new and improved with 7.3<br />
<br />
Technically speaking...<br />
<br />
An <b>Ordered OLAP specification</b> specifies operations that require a window-order-clause. The operations are...<br />
<br />
Lag or Lead function<br />
RANK ( )<br />
DENSE_RANK ( )<br />
NTILE ( expression )<br />
CUME_DIST ( )<br />
<br />
A <b>Numbering specification</b> specifies an operation that returns sequential numbers for each row. The operation is...<br />
<br />
ROW_NUMBER<br />
<br />
An <b>Aggregation specification</b> specifies a function that will compute a single value from the window. The normal functions are...<br />
<br />
AVG, CORRELATION, COUNT, COUNT_BIG, COVARIANCE, COVARIANCE_SAMP, MAX, MEDIAN, MIN, PERCENTILE_CONT, PERCENTILE_DISC, Regression, STDDEV, STDDEV_SAMP, SUM, VARIANCE, VARIANCE_SAMP<br />
<br />
The OLAP aggregate functions are...<br />
<br />
FIRST_VALUE, LAST_VALUE, NTH_VALUE, RATIO_TO_REPORT<br />
<br />
The <b>OLAP window specification</b> includes the following components:<br />
<br />
<ul>
<li>Partitioning</li>
<li>Ordering</li>
<li>Aggregation group</li>
</ul>
<br />
The <b>window-partition-clause</b> defines the partition within which the OLAP operation is applied.<br />
<br />
The <b>window-order-clause</b> defines the ordering of rows within a partition that is used to determine the value of the OLAP specification.<br />
<br />
The <b>window-aggregation-group-clause</b> defines a set of rows that are used to perform the aggregation.<br />
<br />
<u><b>An important note!</b></u><br />
<br />
In addition to the extended and enhanced OLAP specification, several new aggregation functions are available in DB2 for i 7.3. Combining these aggregation functions with OLAP specifications provides a very powerful set of capabilities all delivered by the database engine - without writing your own program. See the DB2 for i 7.3 SQL Reference for details.<br />
<br />
<b>A simple example using one SQL statement...</b><br />
<br />
<u>Problem</u>: Show the difference in sales between the current store and the store with the best sales, the second best sales, and the worst sales.<br />
<br />
<u>Solution</u>: An SQL statement with OLAP specifications to define the window and moving calculations.<br />
<br />
<img alt="" height="325" src="data:image/png;base64,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" width="400" /><br />
<br />
<br />
<br />
<h4>
In Conclusion...</h4>
<br />
Once again, the integrated database engine known as DB2 for IBM i provides powerful new capabilities that will allow you to extend and enhance your data-centric applications in an efficient and timely manner. Take advantage of it!<br />
<br />
You can find more details and examples from the subject matter experts using the following links:<br />
<br />
<a href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?%20%20subtype=ST&infotype=SA&htmlfid=POJ03346USEN&attachment=POJ03346USEN.PDF" target="_blank">DB2 for i Version 7.3 Overview</a><br />
<a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Wf2274ccb91f6_4352_b237_f9a5b492e8b6" target="_blank">DB2 for i Wiki</a><br />
<a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM+i+Technology+Updates/page/DB2+for+i+-+Technology+Updates" target="_blank">DB2 for i - Technology Updates</a><br />
<br />
And if you need assistance with getting more value out of your data sitting idle in IBM i, please do not hesitate to contact me.<br />
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-5942052796969657606.post-74880523874662156882016-03-11T13:01:00.000-06:002016-03-11T13:04:11.865-06:00Services on Parade: LIBRARY_LIST_INFO<span style="font-family: inherit;"><span style="font-size: small;">Recenty, my teammate Mr. Jim Denton was sharing a common issue (or maybe it was a complaint) that some of our DB2 for i users have; namely, how to <span style="line-height: 115%;">figure out which database object actually got
opened when you have unqualified references to a table or view. He also came up with a clever way to determine the actual object referenced. I've asked him to share with us here. Thanks Jim!</span></span></span><br />
<br />
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;"><span style="line-height: 115%;">__________</span></span></span> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
DB2 for i is clearly on a roll with each release and
technology refresh containing new services that help expose and integrate traditional
IBM i functionality through SQL functions, procedures, and views. This article talks about using
LIBRARY_LIST_INFO to solve a programming problem.</div>
<div class="MsoNormal">
<br /></div>
SQL supports two naming conventions for resolving unqualified
object references. The first is called
system naming (*SYS) and means that the library list will be used to find
unqualified objects like files, tables, and views. (Please note that other database objects like procedures and functions
have their own rules based on the SQL path.)
This is very familiar to IBM i users and is reflected in the high level
languages. Interestingly enough, system
naming is supported for consistency with IBM i in general but is not standard
SQL. The second naming convention is
called SQL naming (*SQL) is standard and means that there is a default schema
which is used to resolve unqualified object references. It defaults to a schema with the same name as
the current user. The naming option is
exposed on many interfaces including System i Navigator Run SQL Scripts and the
high level language precompilers. Your
choice used to be evident in the SQL statement itself. System naming used the ‘/’ character for
qualified references such as schema1/table1 while SQL naming used the ‘.’ character such as
schema1.table1. Starting with some PTF’s
a while back in IBM i 7.1 and in IBM i 7.2, you can also use the ‘.’ qualifier
in system naming.<span style="line-height: 115%;"><span style="line-height: 115%;"> </span></span><br />
<br />
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="line-height: 115%;">A
client that was using system naming asked me if there was SQL syntax to
determine the library in which a file was found on a SELECT statement with an
unqualified reference like “SELECT * FROM filename”. Note that in traditional record level access,
there is something called the Open Feedback area which provides this kind of
information. So there’s good news and
bad news. The bad news is that there
isn’t SQL syntax for determining the library for a file. The good news is that it is easy to build one
using one of the services provided by DB2 for i – the <a href="http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzajq/rzajqviewliblinfo.htm?lang=en" target="_blank">LIBRARY_LIST_INFO</a> view.</span></span> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you just specify SELECT * FROM qsys2.library_list_info,
you’ll see it presents a concise version of the library list that you could
also see by doing a Display Library List (DSPLIBL) CL command. It has columns named ORDINAL_POSITION, SCHEMA_NAME,
SYSTEM_SCHEMA_NAME, “TYPE", IASP_NUMBER, and TEXT_DESCRIPTION. For purposes of this query, we only need to
use ORDINAL_POSITION and SCHEMA_NAME. We could alternatively use SYSTEM_SCHEMA_NAME if we wanted to be sure
of getting the ten character name versus the potentially 128 character SQL
schema name.</div>
<div class="MsoNormal">
<br />
Let’s say our RPG program is opening a table named XYZ under
system naming and wanted to know programmatically which instance of XYZ is
being opened. To make this work, we just
have to join the catalog SYSTABLES which contains all the instances of the XYZ
file to the LIBRARY_LIST_INFO to see which one(s) are in our library list and
which one would be found first. The
query isn’t complicated. This would show
you all the instances of XYZ in the library list based on the order they appear
in the library list:</div>
<div class="MsoNormal" style="margin-left: 0.5in;">
<br /></div>
<div class="MsoNormal">
SELECT table_name, table_schema,
ordinal_position <br />
FROM
qsys2.library_list_info INNER JOIN qsys2.systables<br />
ON
schema_name = table_schema <br />
WHERE table_name =
'XYZ' <br />
ORDER BY ordinal_position ;</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-left: 5.25pt;">
We love modular programming and this seems like something we
might want to write once and then use in many places. Let’s put a function wrapper around it. Here’s a scalar function called SchemaOfTable
which will return the single value indicating the schema of the first instance
of XYZ in the library list. If it
doesn’t find one, it returns the null value.</div>
<div class="MsoNormal" style="margin-left: 5.25pt;">
<br /></div>
<div class="MsoNormal">
CREATE OR REPLACE FUNCTION</div>
<div class="MsoNormal">
SchemaOfTable (i_tablename VARCHAR(128))<br />
RETURNS VARCHAR(128)<br />
SPECIFIC SchemOfTbl<br />
LANGUAGE SQL<br />
RETURN <br />
(SELECT table_schema <br />
FROM qsys2.library_list_info INNER JOIN
qsys2.systables<br />
ON
schema_name = table_schema<br />
WHERE
table_name = i_tablename <br />
ORDER BY
ordinal_position FETCH FIRST 1 ROW ONLY) ;</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We can invoke this function as part of another SELECT. Here’s the most basic example to just
retrieve the value.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
SELECT SchemaOfTable (‘XYZ’) FROM sysibm.sysdummy1;</div>
<div class="MsoNormal">
<br /></div>
There are a few things we could do to optimize the
performance of this function before putting it into production but we’ll save
that discussion for another time.<span style="line-height: 115%;"><span style="line-height: 115%;"><span style="line-height: 115%;"> </span></span></span><br />
<br />
<span style="line-height: 115%;"><span style="line-height: 115%;"><span style="line-height: 115%;">You’ve
probably heard this many times from the DB2 for i team – we are continuously
enhancing our support and there’s a lot of function provided that could make
your life simpler. The system-supplied services
provide an open-ended opportunity to expose and integrate IBM i functions using
SQL techniques and best practices. And
it’s fun!</span></span></span><br />
<br />Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-5942052796969657606.post-45862232752675542802016-03-06T09:54:00.000-06:002016-03-06T09:54:33.383-06:00New DB2 for i Redbook!We here in the IBM DB2 for i Center of Excellence are very excited to announce the availability of the newest incarnation of the DB2 for i SQL Routines Redbook. This publication is the result of a recent project lead by my CoE team with the support of the DB2 for IBM i Development team in Rochester, Minnesota.<br />
<br />
The original book was arguably the most popular IBM i publication with nearly 400,000 downloads over the past 9 years. And the notion of using SQL routines to manifest data-centric applications is a cornerstone of our solution development strategy. Not to mention that many new and significant DB2 enhancements have been delivered in the past decade.<br />
<br />
The bottom line is this: it was time to rethink, revise and re-engineer the aging book: <u>Stored Procedures, Triggers, and User-Defined Functions on DB2 Universal Database for iSeries</u>.<br />
<br />
<br />
<h3>
One Becomes Two</h3>
<img alt="" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAABRCAIAAABjd7yOAAAgAElEQVR4nO29d3xUxfo/PrubTe8JvQqIilxExYbeqygq1usVsIuIej9WvIoKiCBNQXoNQVpQQmgJhABpkAZJIIQkEEJ63+xutp0y5ZTdzfn+MXJubgghIAi/1y/vV/7YPZmdeeaZ9zzzzDPlAOX/awAAAAButhQ3B/9/rnsncd20c6muMcaXar/dZJf72uZf9Of4IjojUmeSXe6HVH71cwfpr62U1sV1kqadrHu7MrdW3aUJ2lX1n+w8HauO/lctonVj/Zmi2/8ZuIiO1dcmWevE7TLv0oft1op+bcOqNqW0aZiWS3BV1G9TqUsLuhwPLq1Cxzlf2lSdafVLBQMAtKlm67q3TtZxpVqrurVgl5MKtIdO6rCDBG2qJoqiKIpX1Gf7GutAj5fq5YpCXypfBw8vbaGOc+gAAACXy+VyuS5H/Uu53oYTV6xUG7gvok0VaA4dd7B2i2v9c/y/gwO+kvZUkS4t6Io16kAG3EpLl+Z8aXU6o8ArJhAvonUDtf7a0tLyZwmNW5nJyzHmz+NPZtsZVV4qfMekudpC2+TWscY6w9E/Kc91yaGTjX69WCG2gmqtKWiPvWpC3yC+dqELnYF4eciy7HK56MDYZgBsn9BdVO7CTUcHhAYACIJAme10Oim5L0voLjZ34VZAx4S22+0Mw/A8T1M6nU7K6baE7mJzF24RdEBoURSrqqrq6uqampqsVivHcaIoqna6y0J34VZEx4TOzc3Nz88/f/58TU1Nc3MzhFCW5fYJ3cXpLtwK6NjliI+PT0xMzMrKKioqqq2ttdvtgiC4XK4uQnfhFkUHhI6MjNyyZcuOHTvi4+OzsrJKSkpMJhNCiHrSXYTuwq2Ijl2OlStXRkRE/P7774mJiWfOnKmvr+c4TpKktoTuonIXbhF0TGhRFJcvX75p06b9+/fn5uZWV1c7HA5RFP9L6C4qd+GWQsdsXrBgwS+//BIREbF3797jx49XVFTYbLbWbnSXhe7CrYUO2Dx37tz58+cvXrx4/fr1u3fvzszMLCsrs1qthJC2hL4pnIYQIoQwxgghnud5nkcIEUIEQcAYcxzHsixCSJIkURQ5jmN5OxZ4IkIIOUkkkiAilsMcTwgRRZH+ihAiSRIhhOM4hWEUnndDnrAs5lgBEwETyCEO8jyCiGCMIcIsRAwmrCSjq5WfEIIQEiRRkiTI8YTlXRx2MpBjHW5JJCwrc3wLJgLHyQQTDGVZppWl1SSE0Eyur1bblVOSJIwxhBBjTBfbqOZvQXRAaABAa0JnZGSUlpZaLJb2Cf3Xc5rjOIQQ1a8gCLSNBUGgbr6qdIQQhFAQBMlJOMgynIMQxHEc62Bk0Yl4zPM8hBBCSD9gjGlWvMTzIuJkzEqIETFLEIcJh4lIJEkQBUFACPGI4wXIiRxDmKuVX5WQEEIQJgjLRJCJwGGERIFFkMOIJ5jB0E6gDfMQQlEUJUmiQtJGYln2euu1LXieF0WRyql+oDLcgujY5VAJvWvXLpXQGOP2CX0Tq0ENFc/zLMtSdlKiqzRFCHEcI0mCKIqEEKfTjRBxOFinrOCLDKaZqCQzYtZCeEYmvFPkBMywPMtBjAVo5wQOEw5DDkEIiSgggm3sVROaiALEiOd5grAgCIhgDiNeJFYELZC3IGhB0C4Q3inzoshApA44ag9UZb6hoMaC4zh8cTCkBvvWRCcJrVro5uZm3C6hb6IbrbocGGNBEGRZZhgGISTLMm11WZZ5nhcRZKwWpyQ7JZljWAwJQkQQJDr044uDKb44rIuiLBJJhIIEsQSxiLBwkfl/DAhIIEiQsUT/rlZsHkGIkTqOswhaIGsXkYUQ+tcMkYXhERTdxN0CnU6nk2XZPxwVQUAIsSxLPaUbCjrEIYTcbrcsy4Ig0E51o8u9NlyR0HRSuGfPHupDX9bluCmEbm1WKTDGsiwbjcbdu3dPmTJl5MiR3t7eAAC9Xh/oobvn9iFvvPJy+pFExekUESQ85OwOhBDHcQzDUCNEyYoQwljAECGWg3Y75hxY4BmJbSY2m4u3ioyVsHYCHYhnWB5CLInuK8h6CTjII4KxQLBAEMGIYJ5gJAqOFqfNKdoIRrIsiDLhsMRiwcZLkqSaSYyx2+3mef6vIbQ6ANKZyV/Tka4NV/ShKaHVSeEtRGhBEKhhFkWxpaVFEASDwVBcXPzOO++MGTPmrbfeWrx48aZNm3bu3PnLL7+MGTOmr48+AIDuHiBUB95+5cWKogIFwxYCBUGgzUOHcmqnCSFmaOcI75aIIhIFcS5oE6AZE7PENotcs4DskowEF+FkbBeR9erbV8AEY4xEgRMwA3lJEBXR6WSgzHJOhmtheLeDc0FEMLRDhldEnuddLhetOB0oqVd9ndV6CSihW1paVHtBZyk3utxrQweEbh3lUC10+1GOm+VviKJIB8Gmpqbjx4//+uuvc+bMMRqNdNZit9vpDJ2OmLazeR+9+HQIAH28QCAAD9816Oj+GFPF+aamJrpJhf5KncW7EGctLzWmZzkOHxX2pwgxB1D0XnH3fnfMIefeI/BgiiM9m5RXuiEnuIhdvOoh2IkFCCEnCw4JO3hOEWTFhpiC8pa96Ur8CSUpz3HgmPtCpeISCurOHSzJzMvLO3fuXFZWVktLi9PppAPLXzD0U90WFRXl5eUVFBRQp46OFbcgOmBzG0JnZWWVl5dbrdb/iUPfXNdZEASGYUpLSzMyMrKysmpra10ulyAIDoeDUpkOyhaLJSsrK3/vb+u+m/rYgB5hAAwJ0AcBMHJAj4TozVlZWTU1NdT80MgJIYTneaXakLNk3cqHn1vX/8GDg8ekD3ziWM+H07o9eLT76MT+f9819Infn5iQOXuJNfe0m3EI5KqJ5YKEZVlWIoxTcCBeQaKrylS+J+Vwv2diuz8eO/jZbSOer4uIlqqrJn/1PggCAACNRqPX6xMSEtRZ7F8w9H/00UceHh70GFWfPn22b9+OMaYxxFsQV0voW2hhhRGhyVJfciGnoPiYTTQwkgPxgoIUhYOMjFiWxYhtUuzVhuzKX2YXPD7G1buPaVDfrNEj/uEDgC8A4fpe/rqs5Yv4DVF8fKyzMt+FmhEimHfKWBJ4m8Jbqj77EnkORPredn2oE/iIoGcLuFsBQQrw4wGAwcACgDWol7Jik6AoSBZtLMNDLGCRcFhGREYIORwtNlFhnW5eFjkRIcSLyC6yJsFGeKggqLAMIQgjWXSQFqupcdNmo18I6xtA9P6M/wDDxgjFan/vnY/8QRAAQKvVBgcHp6ensyxL/SJBECCENHZOuyKdLNJwnto/aeeXJEmd4VGfgSYWLwbjOI6jw5QaS5EkaerUqRqNhnankJCQ2NhYOkZLkqSaapfLRQNKVB51HkJLp/lzHEfTUNlEUVRXEq4jOib0ggULlixZEhkZGRsbe+LEicrKSrrhrp3NSX89p6ugtdre6EBmDht50cIgVsQt2OK08w7O7VQEt2Lj047sPrL0+wOPPHD6zr8ZB/Ywjrqz+f/enP7ICB8t8PHzDQdg26Qp/OED1owD1vLjDFvHQJ7nZZFIEuEQZ676+hvsPYgDYaxnmKIJZT16W7R3Qa/+POiu+HQXvPUtfl4woNe5sRPMpwodiIUYydip4BYncTEYNyJHvZNtEnmrLEDRKYhukTgRjzGGTrfIyRKDHBLhGBmxsosRJM5hMsTstPiE8F7+gi6A8R9o2Bih2BzvvvuRLwjw9PTU6/WBgYG5ubmULpRAlJpWq1WSJMonGuHBGNN4PJ3SUT653W4a+bHZbDQZIcRut1Mviz6hcxLKb1mWP//8cw8PD51Op9PpunXrdujQIVo0wzC0M8iybLfb6WdauiiKNMiIMaZ5Umar6wP0Kw0+Xl9WdOBDi6K4cOHC5cuXb968+eDBg6dOnaqtrWUYRmy9l+MmWmjY6FAcxG138NYm0U0sEqnjSRNpsSoEy25XA1N7KC1n5bJN942I9w+uueNu5y8f4h/fV9b+mDZt6m3ASw88vYBmzucfK+azYn2WozGb56qhiHjBibEgYhY62YY5c4SAoTwI4z1CFBBcG9TPMHxc3gPj0kJub/TtxwJPRatXQHBV6HA0dz3P2Z1YEGwIGaHAyJjIdhe2K0KTy9IssxYEGRZL0O2GLidL3BApzVhGyN1CjMRmRAi5WlwWM7tqM6MPRjp/AQQwPoMNv250O7g3Jn+g03oDAHQ6nbe3d1ZWFqUyXUXiOM7pdNLwMMuy1Fq3toLU7uKLBpvaaVmWKc94nletKcMwlMcMwzidTprhl19+qdPpqJEODw9PSUmhaWjHUGMg4sWIJ8aYEOJwOGhnozNXNTpJjfd/G/GvJTTF77//npycXFhY2NjYqO62u/k+dItNFq3YiQVBhAxng4xDwS4FKVZLk8JK5pwLKcvX/Tb+nxt89PV3DnWPedyy9D1l2yzl9yVnFsy9E/iF6EK9dT6vvPCsqzIJFsdaC+KsFTnQYcHEibAkIs6B7bUzZiHvAUQThvWhgjak8r5HlGWR/Ma9zV8uNN72OAThst4fAi9r2J2Wdz63SaxF4k0Y20UZik6B4xSHRbE2KXydgk0CsnOYsE633emyiKJVFjjF7VAQT8xYsAkEWQnLY0tD9A5eGySAABEEsV63N27a6uT4CVOmAJ2nXq/39PT09/fPy8sTRZES0eVyqWFpOqOQJInSkRKOWujWmwLobFIURavVSu0lnTPQD3SSjS8uB0qS9O2336pXEYSGhiYmJuKLsX+32017FP0tx3E09KQOEdRaU0+D8pha7tZFXF9WdIbQu3btSk9PP3/+vNFobHNoBdzEBcKWFqUZonpitymQa7HLfFNLfbnzXIFyvtiwP3nP/KXxSxd/Gu4V19OXf/J+5bVn7f9+Rlk91fT73KXT3gZa4Okb4AfAx889a97zExe7hIlbZU+Lg3VVApYxkgSOg4ipmzaD1/aRQDjyCGH0oedffkkpu4AxVJrtza9PNWn6KQG9CNCLHv3dT70ls5yMkCJJChaEkwXNa7eKM5e4P/qe+fAz8+ffNP28gjmQ5Kysc/MEiVIzhozEKVUVaEmE9b2Z7OR5cOlvSvFZ89ZNPAiUQIAMgjmvYY2/bpc5fvwHk4H+D0r16NEjPz//3Llzy5Yt+/zzz6dPn56WlibLssPhcDgc1EBKklRQULB27doffvjh448/njp16pIlSw4ePFhVVUXDI9TToL0iMzNz/vz5P/3007fffjt79uz58+fv3r3barXSPHme/+abb6j77uXlFRISsn//foyxIAh1dXXJycnp6eklJSWHDx8uKiqiJr+srGzDhg3z5s2bNm3aN998s2TJkv3791Mfho4kKsvxRYt+HdEZQu/duzcjI4Nu8Kcj2/8Q+mYZ6TqWtbeIVqeDSEaxsaB8/4a9X78e9d5T+599ZvOzL8f+OG/r1A+n+4D93UD+34KbXxjp+uxFecmH1n0L/vPOo54ewF8PugHw05svM0s/UTZMVzbPFw/8JldVSIILIgkznExw03ezoa6vAEJ4EMh4dcueON5tM0CRVwQsfL2o2eM2zivUBnyaffs1v/h6FbTziugwVZcn7Dn6+Ufx996X02fIGd+eDd49K/z6lN42sur51+2/rFWKSxVJasCcwpkMS5YV9L+/KmREbeADp3o/0jxjDr/0Zw4EiyBYBt15r3saf/3dyaIJH0wCeuDj4+Ph4eHv7//+++8/+eSTfn5+AABPT89+/fotXrxYFEVJkhRFMRqNCxcuHDhwIADAy8vLy8uL9oSwsLCPP/74zJkzoijSmRzDMDNnznzooYfaXGrTp0+fKVOmpKSkKIrCcdyXX36pEtrX1zcuLs7tdttsthkzZtx+++0DBgzo0aOHj4/Pjh07MMYxMTGjRo3SarX0JzqdzsfHp1+/fpMmTSooKMAYU0ef9iV1Lew6ojOEBgCkpqYWFRXV19dT10g9KnszCe10OhU7p2Tlu+YurR7xaGVw9/pgv+Y+AfuG3xb7/NOnVix+3QvE9/AzPTLQNuEe5q3Rzn8/oyycxK/64svB/n8H4EWN/sNuwYenvGqd9krLj5OcP33G/bZWrCxFkstBJBEKLM9VfzOT0fVGIBCDQOLT58Qbr3HQbJObLVwtN3sJ73c3AiESCJL8h/KvvGdvYpVmhNZtK3n02epuAxuBnx34it5h0DsIAR8RBDSD4NI+wx3fL1IqanCLu2XtJuM9T0PQS/AaJOvvYMDA5h4jbUMfYnQhgjbMCXrzvvc1bYx2MvC199/WeAAAgLe3d2BgYN++fTUajUoaDw+PsLCw6upqjDHDMKtXr9br9ZTNnp6eAAAPDw9fX18AgI+Pz4gRI4xGI3UMVq1aRZ97eHhQ3ms0mqCgIErrsWPHVlZWIoQ+//xzNcrh7e2dmJhICNm/fz9NRhdin3rqKYPBEBUV5ePjQ9dlPT096a/oDwEA//73v/Py8tRo40200KIoxsfHZ2dnl5WVmUym1l7HzXQ5Chz1JQUnU76YdqT/3ec8gnG3MDwkwPmP7qfH3pv+5gt5P8+a5gHYe4YpY+5q/tcw+1uPFP+9b+17D5d+89KvY/+247mxa4eNSHthXNNn79i/GCdOe4Wd/pZ1yy+w6rxDFq1ElEWnQyCV3/1g9+4n6MMw8BM8ema8Op7hrW7UKOOG5i9mMGCA4tVXAqGs/+34g/84REWpsZa/+XGhNkzx696i87boARnau/nOXg4/veLh2wJ860FA8ZP/NBxJMkqw4YtpJb79W0A3VhdGPPoqYLBR07M+qK/NI4R4hDs1/aDvA00bd7rs/OuT39bpAGWwt7c3pSllrcrpZcuWCYJQXV0dHBxM2axaXI1GowaSdTrd2rVrnU5nVVVVeHg4zYdm1TpDGlGJiIgQBOGLL77w8vKiXSgoKCgjI6Ourm7SpElarZayuUePHomJiY2NjUOHDqUpKYMffPDBhx9+mIZH6M83btxotVpVH1q8AdtQO8PmiIiI6Ojo5OTk/Pz8mpqa1kdlr+ekkCU8izmMoUgEASIMCUSEwwRKmCfYJbghR6ySZHRjzNqV8zXKyWPpE8elDwrLDgd1o/rbJzxQ/sH9lQvHJL7yeNRLTx9b/fM//cGZe4c4HuhlfH5QxYtDT/cbkD2wd8HdveETw4R7ewgjgvGj4fwL/cX3bne/+4ht0qto0xbFZmUVN4OxwhKMZNM3P9k9hrh1/QkIdYAA60svKymJtrw0Ze16R3A/EhiIgdbs0W3nfQ8wMXt5EybJGVzYcBF4Kl4BLAgv/2CaO7fUUXTu0JalZd0Gc/5hMvBVNLcXrV1BGuodjzzR6B3s9glRNKF5Qd0Nb77T8J8vU3oP5UEPpO0tgQGi58O2yF0Sy706ZaJGC3Q6HSWcr6/vJ598MmzYMPqEEvG5556TJGnHjh0AAOqNaDSaN954o7i4ODIyMjAwkBpjPz+/0aNHi6K4ZcsWmowy+MUXXywtLd24cWOPHj3oQ39//zFjxgiCoE4Kqf+Qm5sbExOj0WhUeb777juE0MaNG2ln0+v1Wq128eLFJpOpuLj4tttuU7vW6NGjaVtTD14URYa56l2KHeOKbP7555+XL1/+66+/7tu3LzMz88KFC2azWT0qez3DdryIOMITggRMIMcjRBiIoCTxBHMcRHYkIZlzO60uVJGXBxMzq76dWvTiE83/Gt38xiP2T190/fR/3IqPLJH/zh4/PuaV13K3bH1EB9aF6s+P7NHw4l3R4SBW55nSI7jsgSHM43ei+3pI94WxDwaZ/x4ivjLANO5O48fvOA8fdnPQIktWjFyI5zho/fYnTne7rO0Htd0gCCrvc0fRMxMzx7+aN/xvjKe/28u7Bfhawm7PfGeKcqZcMDNN0TvN3oNk4Cdqg6D3XU1LNknNRIHu0uNHzwbcZvEL5rV+Zl3vs79HNBTlM3970KwPFnR+LSC4bPSjyq7tSvr+/PfewaAn1vQWwQDi+YA5MlpiufEfvKHX/DFw+/n5RUZGWiyWhIQESj5quUeNGoUQWrZsGXUhqPlcuXKlJElVVVUPPfSQRqOhbkBISIjJZFq8eDHNUKvVhoaGrlq1ShCEc+fO/eMf/1BN9eDBg+vq6mbOnEnZDAAICgpauXLlCy+8oNFo6CDwzDPPNDU1sSy7dOlSlbg6ne7s2bM0RPjSSy/RvuTr6/vYY4+ZzWYaN8QYU7v455nTGlckNABg8eLFa9as2bFjR0pKSlFRkcFg4Hmeeh3Xc2EFSRgRSAgiCGOIBFG28TzvlEUiSUh2cZKbuJsR22g34OJzZ2b+3DTivqZhg10TRiuLpqDVX7HrZsPIn1DUz/HzZn/56oT9sXHDg/y+BKDm/uFNg/qeBSAWeMZ7eeX1D68dEsbcHoSG+JK7A8iDoeZRQSVj7jAvmaNUViAsGQmxi4gIDI84+7T5HLhNAAPsHr1kEObwGFDlOdwCwmBwnxaghwCg0HBu4ptKY5lDkWSLpXLDOtZ3iOLZzQx87D7D7Gt+F+odSi0RjmZZfG9X9MGK1peAMLx+g3I0Xx72kOjbCwF/FoRcePs1pfq0ky85sXK2E/QWtb0I6Mt43muI3EFYduKUN301gI7aGo2GbueAEPbt25fyTKPRDBo0CCE0c+ZM6l3o9Xp/f/+dO3c6nU5BEMaNG0d9aABAYGCg1WqdPn06pb5Go/H19Y2NjaWO9fjx46kPo9Vq+/Xr19TUNGvWLJqSmu2nnnpK9eCDg4Pj4+NphO7DDz9U3fqgoKBRo0bV1dUJglBYWJiSknL06FF6jA9CyDCMGo12OBzXgcWt0BmX46efflq5cmVUVNSRI0cKCgoaGxvbIfSfd6ahiFie4XkW8VAURSI7G21WK0YVxZX5WaeRiXMRmZG406fTmxPiDz7+otUnoEYPaoYFifPetP32o23vBjFpnystITNiy6QnXz5xKPN2rc+Pdw0/POLuKABigTbKw2unziMzNEB4eITy7CPwtlBzL6/abpqi4cFl7z8nZR5yY96GZTtxQgkTyYFFjv16LgQDMRjQ7NlLAT0UzR0ucK8AerFhvWWNF9RpHaHh5vseVzJPILNZ4i0lK5cj39sVr25GjQfr0bv6xTerPp5V/Pm8Mx98ZPQIFnVaN9BCTY+6eYuUrHPy0PsUv74CCGI9+lyY+pliKbU5q07tiWgBvSVNLwR6O3zvqf81CnPsa++/6w8A9YxDQkJSUlLo+tbAgQPV6dqAAQNEUZw5cyZlLV3V2759O93z+fTTT9OZH7XHDofjs88+ox459aFjY2NpFPn1119XAxQDBgywWCwzZ86kTNXr9RqNJiAggOav1WqnTp1KT1RgjHfs2BEeHq460AEBAcOHD586daooinS7KXWd1Q90anjdd+11htALFy5csWLFtm3brkDoP2ukBYQQLwpYwITn+RN5eas3/bpgzcqIFZtiNu9xMhJnd9iItaY8J2P6Vzu6DyoBoEQPzgzWWueMZw+tFAqPKA1nYUWObffBn597I2fp9og3P3vJP/R1H/1X4QGf+Hp8E6pf0Tdke5/g6mce5SeMS7+tW9qgbof6BBS98YQ16hfFXsO5xGboIqSFYEhEO4Ps7Dc/imCQpO1n8ewhgTARDILah5rCRpwAPgIIcHsHsx6BHOhVcv84V2yCHTZfWLOaeA3FwLfZ30PR+jcFdrd59Uf62+u69ZGBp+KpV7QBxO+ucz/8ZD1b4Rhwh0vfQwTB0GPw+S+noYYLJrayZOdWN+gtgp5Y05vxG9GwaRvhudcmv+cH/iBuz54909LS6D6KoUOHUqoBAIYMGUIImTt3rjodDA8Pj4qKotOvp556ippYujTT3Nz82WefUfNMbTmNLnMcN3HiRNVzGDhwoMFg+Pbbb+k4oM4sfX19qT+9ceNGGoajsW06Dqh2mib28fGZPXu2wWCQJMlms1HJ6Qo5NdXXhccqruhvzJ07l1ro7du3JyUlFRUV0e2W/+NDXxcLjRDP8yxGPIQQC+RgaspP61Z/v/yXBd8vPZ50UhEUDrInzmU21+dl/N97McD/PNDV+Gkrbw9QFkxSkiJRUhQ6EdeUGUPSYvd+88X80U/juKMznn/xHgBe8Ql4zS/4My1YHRK6DoB92oCEoJ7bfEIzH/hH8QuvG3etliuyZafdQhADXQJyI5aDhGE4R/NXs7G2v9ujN9SHsyCoecBDygeLnNMWNUyYbPEcwIJgzq+Hoh14PmiwY+68Rq6havOvgs/dPAi0BwS0AB+z3l/UhMsgpDm4p8nT3xzQzarpbfC51zI3wnWqzDJgsOTRTQbhPBha9Ol0UlNlNdeWRfwqgV6Cprug6cn5Dmv6davAcRMnT/EGehrc8Pb2Tk1NpXOpoUOHent7U+oMHTqUZdl58+apwbKgoKDo6Gi6VejZZ5+l/YH60DabberUqTRDuuFpz549hBCz2fyvf/2L0len091xxx1Go/Gbb76h9hhcDJhQh0Sr1U6YMIHu4qDmNj4+/umnn1YFCA0N1ev1tBv079//4MGDdOsp3XZCVyWv+5nIDthM9yfNmzfv559/Xr169Y4dO1JTU4uLi00mE8bY6XT+Eba7Xj40hByEnChgCCGWxC0xO39cuWzWqqWb18dUXzDaTZyouPZn7cvPikl546VkjV8lCGrQeFWE6l1TnlE2/GBe+IVj5Sxm41x+z8KKDT/89MCILe++ezYj6cOJr4zr1v8Fvz5PdAdTegd+5eczJ6T7whH3Ln711a1zfsw5cJA3nZVIExIcHCYEOxEnMhBZMMNDwfDVHEbXqwUEufTBdn1o+YsTlNI6J7LBqoLi+8aYPfui4AEiCGF8Bitvf9TM19bv2O7Q3S2BAdB3IAJ9Kx94vHLcqxkTnk/+vzfjX/vXobffTR4/OWvip817DjoyjjN33CXrurlAD6IfWfTlXKnZIgp8w+YYAfQhuh4C6IY8h5oiN4kMO/79D72AL0n8EnEAAB4FSURBVJ3nBQYGnjp1is63RowYQa0stdAsy86ePVud6oWFhe3du5euobz00kvUWGq1WkroTz75RLW7ISEhe/bsEUXRZrONHz+eUlCn0w0ZMsRgMEybNo3SF1wMEdJCNRpNr1694uPj6TI7z/NOpzMnJ2f06NGhoaHgoo9EYyne3t6DBw9OSEhwu90Oh0OSJIfD8RcTmlroefPmLV68eO3atTExMenp6RcuXGh9aAVcL/OMMUaIJxjKksBxHE/w8g0Rs5YunrN2RcTqaHuzLJAWm8AlFR0pzInZM/bBTK1vDeht8ume7wVOP9iz6ct/NfznNWHBp3jhvw0b3mf3/Xhm3qcv9PCd8PZzJ04cPfpzxJqxk6Y/NmLe0MFRQ+9NfOzlE5//cDpqT+bhdCQqDsXGOq0QOVpEWYYyy2GHLNcTDiFX0/T5Nu9eEtArukCbf/eU1yYYODMRIYEG8ubnPBjA+vSDml6l3r2t/xzPwWrTvh3N2hEtYDgHhts8H+JXbYNnz3GWUtZew9fUsY0WvskmVtYpdjNz4hgaPlwAoTLohvX3nfhstrXJxGCuYtNOou1L9D0FEIr0Q0zrN4oMO2HKR3ptgDrVy8rKohobNWoU5Q2dFBJCZs2apUapQ0JCoqOj6VTvueeeUx0Jf39/u93+6aef6nQ6amsDAgJiY2MxxjzPT5w4Ue0SAwYMMBgMX3/9dRuXgwawKSZNmkQ3KokXF/9Ylt2yZctjjz1Ggxtqbh4eHuPGjcMYUx7TRXjxep+46YwP3eZYYes9/tczbEeQ4HS6WQ6zomzk4MKIyG9+WTZj1ZrY3+M4g72FJyK0H0vca85MSXx78jJdt1g/nwzgYdQFWj0Ca/r2bZj8qpK1+9TOxXVzXzN++bTzkyfhWw9v6ad9Uw9mvfpaXNT+pKSk5OTkQ4cO/fbbb7///ntBQYF640T78nBC5Xff1/iFu4B3i0dgs3fPCy9MdjZCnm9pgZz1y+lW394OrwDoFSb43KaMfR2Z+ZItWw1Bg5mQYBZ4NOr6l8bGK4YWxag0mizcT+vhkkWu1UtdS9bYrbWmzCKlz9MKCG/Raur9/Ao//qTZYcImY/GenZaAUKjzV0B3W/D9zPIdnBG9/frH4SCMUqp79+6HDh0SRRFCGBYW5u9Pp4ugf//+Vqt1+fLl6s44Hx+fffv2UVv4wgsvUAdap9MFBQUZjUZ1QZt6wwcOHKD7SF966SU1ytG/f3+j0fjdd99RC01p/cgjj0yePJnGWwAAd91117Fjx+i0j+6CoptUeZ5fvnz5U089FRgYSO090ILH/vHoybxc2SU5WAYLBCIiiLIgSBgLF3cIQowhxzGYXOOJmM4QGgAQGRm5b98+enlSO4S+LpzmWQ5CzHIQis5mROavXjd71bqZK1bvjNqDrVARnTxnS0naK5QXxr793pqed8ToNMXB4U0e/lUAFIYHKPOnKqd2ixfilQUfCv96RHn+QeW5B/MevTt50pu5azbnbE1aunTp9u3b8/Pz6dEsuj3SarV2IFLtjFkN/t1Fja/oFWzy7H7huXeIgeWJIjiaTZ/+h/XpA30Dm4F3kyZUeOZlVGVrjNptChvW0COsPijQ1nNEw759zkbOaWGzd/5ectvo4rCBld2GFPreeS5iq1JsMnd/1OHVgwv1M4SHF7z/oclcJ1lMeatWmrz0gpevBPxsoX8ja6NdrPzh+58HAB+VGbm5uRhjq9U6dOhQymZvb++BAwdyHPfFF19Q2mm12l69esXExFCqPfPMM76+vtRtCAsLczgc1ELTGV63bt3i4uIwxhDCN954A1yMOvfo0cNgMEyfPp12Eo1G06dPn7179545c0YN+QEAvv/+e1mWd+/ePWPGjDlz5vznP/9ZtmyZ2WxWFKWxsfH++++nkgMN8A/0y849wXCsIIkQEZaDCAsMw0GIIcQXT+kjhHhCrnEFsTOEFkVx48aNlNDl5eXtuxx/3uugwQ2EBSS5bERctD5ywZr1M5euXL9+i93CQQ5BkT+SHFeSmdQUvXPxkBE7fbRHAKjw8DgHQFHvAPY/E3HMAu5YBP7geePdfaXe3SoDfTIeHG6J2+GGfDPvpKcqaF+kI2PH664WmW2cOavZvw/RBkKvMIu+V/mL79rtjFl2SRLDfvu9zSMcevqzvgHW4J7sC8/ierstah8HBjtBIA/0HAirnf2D0lBlrcgpXDbLoO/BafxFr95Wr+HC/lSh1u7q/zT07Cl76CHQlQ59GEXFKgePN77xmU0PWvy9JeDRFDzU+Mtau8n05pT3fbw96fCt0+m++OILjPH27dsHDBigxhOGDx/ucrl++OEH1eXQ6XRr1qwRRZHjOLoETVno4+PT2Nj43XffeXp60oW94ODgdevWOZ3O6upqOn2ka9qDBg2yWq10UqgurCQnJ2OMH374YRoE1Gg09957L8Mwal+i6zIVFRV0H/bs2bPpxiZvX69BQ247mZcrypLklBmWl2TXmYKisrIKCLEgSCzLyrJMCHI6JZvNcm0s6gyblyxZsmHDhj179mRkZLS/UnhdjLRTkjHGCAtQkO1YiN4fP3vpih+Xr1q2duO50kqWEM5FzlYW7dyyTqmtSfpq+sZg773eunwfryI9yA7SNE38u7JxzpkvxxvCulv9wow+oRWD73At/Umpr3SYzQ6hhe4DpiSm3h6NN11OHqPb3vzdLE7Xh4BABEIh6FP70mSLwDZKAhJs/My5ZhCKgC/S+XJeofZHHpbrm5ikwzVhdxBtoOIfooDgpjFPKiuWOjcvOT72Xsk3WPDybfQMMN7zFH8yzwEl9PirDfpARadTtF41gf3tT0+yPPl2ZuBtsidwe2rcwLu5593Muk2CwDw/eTzw/iMEBgAIDg6eMGFCv3796EESSui3337b4XD89ttvPj4+dEVQq9W+/fbbu3btWrhwYZ8+fdTVkLFjx2KMo6OjVUus0WjGjh2bnJy8YMECOp+jpHz55Zd5nv/2229Vf6Nnz56HDx9GCEVGRlI20/6zffv2devW0ag27WMzZsxobGw8derU/fff/0ev04BRDz5QUVWJBWJ3sJPf/+BvI+779/999tSTz459alx5eSXGAnXHMcYYX+M+6Suymd5ksH79+piYmGPHjhUXF7feFd32tW7XJsQfQDzGkOd5nggsFs+UlM1a+MuCZasXrlwbc+AwKzubEMO14Li4nQVHDvI5uYeefXKFh3a/1iNDq80O9Fb+PenC3x/Y1TM4P7D34QEDj7z7Qu6upZUNxw2wrqnZ7EQuGloSL254VwOilxOHEWzMf2bJYJACBihgsAwGNTw92cFakeSCNoP4/c+MxyC3V18RBLtBz5a7HpVtjQpbWf/iy3XAQwB6RR/c5B1UF9DdHjyg0jtQAnpFH1QV3Kvkn28oDosDO5XvZjX6hzkBUHR6KwgWwe0GMLCm951uoEdAo2h71Af/rXlRhBsxL01+CYT8N76rbohTdx0FBgYuXLhQFMXy8nLVq9ZqtfTIlhpwoB/Wr19PCCkqKho8eDDtJDRwQZ1sAEBISAjl9PLlywkhX3zxBS0CANCtW7eUlBQI4ZkzZ+guKDqzHDduXEZGxrBhw9TJok6ne/LJJ++55x71ia+/39ffTIMYORjusb8/vnzFmuSUtNyT+c1me8T6X0feM6quroEQsfURsmtAx2ymUY5FixatWbOGnlu57NL3nzfSkGcFASOEMBE5LJptzLLV6+cvWvr9ouUrf916vrbeIhG7C5fXlcfHROcnHlESjtZ+8m1MUN9Y4JMZ3DO7Z/9kv26J3j3IyPG2d7+UkhNZrraQKSslRl5xOwTSevetejFNB9cASA6b9au5Zu/hds1dzV5/M2jvLB07mWlsUlBLC2NzrdhUEnBXpd9tRq9BWD/c1PuRoxnxUKhD61czIx93ePVyeIYbA3qKPn0VMMDm1Rd7Dajz6mt68tWWmFiJcHZRlrZE1d7ziAQCkHcop+/rBEOag+6V3phsCh5Q6dXdFjy8uNujTT9vVWzsu++PB95/HPl+/PHHVZaEhYXRD3369DGZTNS7WL9+Pbi4qkddhaCgIGpfvb29n332WbqlHUK4dOlSNQfaW9SAnVarff7556urq2VZpoSm0TcPD4/9+/fTo1n0Od3UodPptmzZ8vPPP/fr148OBdRpoT2Bmu3Hxzxx9tx5QZS3/7ZjwsQ3my2OMU8+G7V956R3P4jdd3De3J++nDpNECSW5QkRr/mahI4J3ToOrRJavcfiOltogfCCgAUBE0IgIjwU0jJzVqyOmLdszfLIzdEHDhpY1oh56BLq6quOxMctOPJ73OnEnOz44/EbC1O27Fr7zYHIOUkbFzZnZkm1dRZj4/nGmjrM8i2yAPkWhm9zx5J6yu2y8vCMecv20n++e3rsxFMvvlX68uSS6YscNqbFIbICi1OOHn/utcxXXit88a36se9nj3nzZN4p5EROWxNKPFL0wScxt/8trufgc75D8kPvyuo3IumOB6umTlfSs5Vmi+QUrQJuEcW6vTG5j4050r1/Sviwk3c/X7VklXwu5+S/JqaOff7M4xMLX/rKFntSYIU5C2f0H+I9cuTI8PDwBQsW5OfnT5o0iU7IdDrdsGHD4uPj3W43daKo40F3I6mrIdRb+Prrr+vr60VRtNvtiqJACBcsWDBq1CgvLy8PDw+6pg0A6N2799SpU7OzsxVFsVqtq1evvv/++++5557Ro0ePGzcuMzOTFnTixIkHHnhg5MiRAwcO7NOnz6JFi2w22969e0eOHEmp7+3tTYeF0NDQGTNmlJZVQEQQFia//1HU9miOFx586LGVq9a/8/b7Rw6n5mSffvCB0QJxulwtCBFRvCEWWhRFSmi6OSk1NfXcuXNGo/GG+NAC4SFiMKYngQVMZEF079odt2DFutmLV8z6ecmRzOPNGJohg52Cg7UfrK9MPn/maPqR7LR9aUlRJ9J2mGrzFKbWfqGuIi3feLqKWCVWcFshJnaHwmMaw1dPaLa+mrFdWJxQbCglJ1KbT6Sai064T5+wnTjR7HYi0VnaYsOckc04iisLbMePuQ5lMEezbUTBnMLzcgtPlJzz7I4DZNsuZc4asnCFsHozezDRWlfRjGwu2SnaOQmTeqSwkujYGqP8uE6Zu51sPMRwNqPT1nwmC547rWSddh05x5Y5bC1KHd+QX32soqKirq7ObDYLgmA2m5OTk+m9UHl5eTQ2px5QFQShrKwsLS1t+/btkZGRERERqampubm59AwsXaymy84ul+vChQuJiYlRUVEREREREREJCQnp6el09kzXPhwOR11dXVlZWW1tbVlZGT2ASM/nFhcX19bW1tTUVFVV1dbW0iNY5eXlp0+fjoyMXL169fbt2xMSEuj1NAgLgihzPPp62vRFi5dh4rzv/od3xuz7+qvpCEoZ6dkj7xnFOCDGAsYCIdcYn74ioUVRXLRo0dq1a3fu3JmWllZSUtL6vsa/4hqDA4cSf1myYu6cBSuXrNq6cdvJnNMcTzgsKo4W0SKxzRzH8Bzhjby5qP7s0bMZNeerTdVGzsKLUBKJkxARExGJN/zqKno/3aV/XaDgeYSxACH+9dfNEye+brcz9903iuPgK/+cWFPdOO3rGdO+ni5Lf5hnnr+xYbt169bRo7LtrBTeOCpTsEjIPZkfE71n5ZJVs7774ZdFy2J27Ys7eDgv/cz5/NKy4oqTJ/MOJR+OTz2YW5xbY6uGNkgYIkJJhAKGBEJ48X7yG4suQncMeueM2600N1snTZr83XczMjKyCBFrqhvXrd34xONPN9QbORZLkpNG8a6tlM4TOiYmpn0LfV1r3Q6Q6HQw0GZhaivq0pLTo7b+vmz56lk/zo/aFhO1LXrP7rjMrBO19TUsZqDIOZDFJUpOQZQwwYiHkIOIQYTDwg2/A66L0B2D5xEhIsvygiAZjeYpUz584YWXPv3087fefO/vjz2Zd6oAQZEQkeMgz1/7kngnCd3Gh/7vbrsbbZ4xxrwo8kTAWCBIQDzmOOjgoR3CZgfv4AgUZEGUiYgx4RB08JwNIx5BDvL0ZREcEThMWISv81GfS9FF6I7R0qIwDCcIEs8j6lRwHDx+PDv/dJEkulkGOZ1um81BvfNrPprVGTZfusGf3hH1x6TwRnOaEwQkSggRDIkkyKIoc5hwggCdbl6QGYxZnuN5nmDoFJBbIhDzPOJ4xCHMYsJhwvLQznIdLXFfF3QRumNYLDaXq4VhOFGUWZaHEMuyi2E4gmWCZZvN4XS6RVGUJMlutzud1+hyCFcC3Q+9YsWKrVu3Hjp0KD8/v76+nt44dZ3PFF4OFsgiUcACwRAJmECMGMg7BGTlOA4TIkuyy/nHCIV4giEUCE8wiyDEPMaQCLxAeIJv+PWvXYS+EgRBkARBon4FISKEWJKchIgYC06nm969xPOsKBKErtFFvCKbadhu1apV1EKfOXOmoaFBvRDsr4hymDkHJ2AsELrploO8HXI2zGOB8AiyPMfyHJ32IYIhRgwSHJCwSOAwwUQUBEESREm48ReDdxG6QyBE6LyQ/jkcLEIEwj98a4QIvbseQo7jGFG8RsV1zGb1Rt1169ZFR0enpqaePXu2qanphpwpvBxsmOdFQsQ/TqGJssQJ2Io4SRBF8sdZS/o+B14kvEgsPLYhgcUSFGRMZIwFxGPE3PC3NnURumOIokwJfXFFS6KEpp8vXniNJEmAkON4+7WVckWXY+HChUuXLo2MjNy7d+9lrzH4CxyPLnShM7gioSk2bdoUFxd34sQJun0U34gjWF3owp9HZ9hMX/dNCU03+NP98df5xEoXuvDncUU2L1iwQHU5srKy1FcV/g+hb3YtutCFP9AZC00nhXQ/9Pnz500mE/Whb/Lto13owqXoDKEBAOr2URrloNtHu3zoLtxy6AyhBUGgK4WJiYk38uakLnThT6MzbKZL3/QqsDNnzrRP6C42d+FWwBXZTBdW1CNYhYWF7RzB6mJzF24RdOw6z58/n94PvXHjxj179lz66qAuC92FWwuXYzNd9KZs3rBhw86dOxMTE/Py8qqqqtQ4dJcP3YVbDpezzXPnzl24cOGSJUvWr1+/Y8eOw4cP5+TklJaWGo1G+pK7di6a6QpId+Gm43LmmW6yW7ly5datWw8cOHD8+PGSkhKDwUDPVlLz3A6hu4x0F24uLmeh6XUca9eujY6OTklJKSwspO90U52NlpaWLkJ34ZbD5XzoBQsWqJeOtr4BTH2h239fvNnldXTh1sHlCL1o0aIVK1Zs2rRp//792dnZFRUVNptNuHjp6JUJrSgKfevbzarYNRfd5ofXtwp/vULofGju3LmX1oui9dfL5dDB1z8v3tX+pN3qqLldjtCrV6+OjIzcsWPHkSNH8vLyampqHA6HKIput/t/XIxLCQ3Afx92ntMdKLR1HWiajhPji63YmXLbLUjVVwe6u7S4dlO2FrWTubX+7VWK3xZz/xeXe96m1u3mcFUKuSrxLkfNK9aoTRr1oRrWmDt37tq1ayMjI7ds2fLbb7/t3r07ISEhKyuruLjYYDCox66uQOg2aGlpwZfYgzaid6BQfCXtt5vzpbl1sg/8ebQupYM0HQjfWp52zWoH+um4dLXQjuXvTLKOc7ichlsPCB0UfVUCd4zdu3fHxcUlJCQkJSWlp6fn5uaeO3eutraWvtCWOtBXTWi3200viTKbzW1qdfTo0cOHD8fGxu7cuTMqKmrz5s1ttLBjx46YmJhdu3ZFR0dHRUVt2rQpMjKS9rkdO3bExsYePnyYvgbv6NGjycnJR44cOXjwYFxc3N69e3ft2kVLiY6O3rlz565du/bs2dOuEd22bdvWrVtp5uvXr1+/fn1ERMTGjRujoqJ27dp14MCBpKSktLS0zIvIyMjIyMhIS0s7evRoampqSkpK8v8iJSUlNTWVSpWampqUlHTo0KEDBw7s37//wIEDCQkJR44cSU5OVhNcytRt27Zt3rw5MjJSfbJx48YtW7ZERUVFRUWp6bds2bJ161YqPwV9vm/fvri4uNjY2D179uzcuTM6OppWBGOcmZmZnZ194sSJ9PT0pKSkhIQEKs/Ro0ezsrJycnJOnjyZm5ubnZ2dkZGRkpJy6NAhmpXKjKNHj6anp2dcxKV6uLS7btq0acOGDVS3kZGRmzdv3rZt22+//UYFi42NPXjwYGJiYmpqampqKm3HhISE+Is4cOCAKkN8fHxraXNzc3Nyco4fP56enn7s2LGjR48eO3YsLS0tPT09MzPz+PHjubm5p0+fLioqKikpqaysbGhosFgs9PwifWf9tRDa5XLR94eyLGu32y0Wi8lkamhoqKioOHv27MmTJ1XlxsXF7du3b9++ffv376dyZ2ZmZmVlpaWlJSUlxcfHx8bGxsbGJiQkHD16NDc39+zZs2VlZRUVFRUVFaWlpcXFxYWFhXl5eTk5OVlZWRkZGenp6VT7WVlZ2dnZtLVo/VNSUpKSkhITExMTE9WesGfPnt27d+/du3f//v2JiYmZmZn5+fklJSX0+ra6urq6ujr1QreKiory8vLS9lBeXk6lKi8vLykpKSoqys/Pz8vLy8/PLywsLC4uLi0tVROcP3++oKDg5MmTtKapqamJiYmXynPo0CFV2oSEhIMHDx46dOjIkSP0yeHDhw8fPpycnJyenp6Tk3Pq1KmTJ09S4qalpWVlZeXl5V24cKG2ttZgMDQ2NlZXV58/f76wsLCgoODcuXPl5eX19fVNTU0mk8lkMhkMhtra2tLS0qKiory8vJMnT+bl5RUWFpaUlFRUVFRXV9fW1l5ODxcuXDh//vzZs2dPnz6dlZWVnJwcHx+/d+/e3bt379mzJy4uTqUvFezkyZMFBQXnz58vKyuj+Zw7d66wsPDMRVDVnTp1Ki8v78yZM1Taurq6pqYmo9HY1NRUX19fU1NTWVlZUVFRWVlZVVVVXV1dXV1dU1NTW1tL62U2m202G73oXhRFNVp3dYRuzWlZliVJEkWRnmzlOM5qtRoMhurq6gsXLhQVFZ0+fTonJ+fEiRMnTpzIzc09c+YMbfiysrKSkpLCwsJTp05lZ2dnZ2fn5eWdO3eusrLSYDBYLBa73W6z2SwWi9lsNhgMdXV11dXV5eXlZWVlVMVUU2o9KcnOnj1beBEFBQVqN6BdKDc3t6CgoLS0tK6uzmQy0feXcRzHcRzLsizLOhwOWq61PdhsNrvdbrfbrVYrlaq+vr6urq6hocFgMJjNZovFQtPQBI2NjTU1NeXl5RcuXGjTLVVLk5+fX1BQQFv69OnTeXl5p0+fpk8KCgpow6umqLa2trq6uqKioqSk5Pz586WlpTU1NSaTyeFw0Ldx2mw2o9FYX19fX19P1dj6rQb0la8Wi4XqkzKjsbGR0oJhGPYiLtUDbYimpiZ6y2NRUdGpU6eOHz9OFZuTk0P7RnFx8YULF8rLy2tqamjO6s+NRqPBYGhoBWpHqAKNRqPValXf+UmvsmcYxn4RDoeDuQjaaupls/RecGqb1eDGVROagtKagr7ihF5l6XA4mpubaf2rq6srKysrKyurq6sbGhpMJpPFYqEKok1O/0vNjNVqpRcJ05ks7ScQQqrlNlSj7KHap0OEoRUaGxvVbkCNKxXAbDYzDEMvkJUkiaqDfqDX8FxuWt0aGGPKodbKpYfYKdQmod2SynapPPX19Y2NjY2NjbSB6+rq6BMqf0NDA/1qMplsNhutKe0tJpPJbDbb7XZ6rSgVntoU2upUjdRu0QaSZZmm4XmeZVnKDHqdtiAI9EaYy+lBbQi1S9TU1FArXl5eXl1dXVdXZzAYaOPS7kFfrkB1Qm+kpxpTofYfNSVtC6fT6XQ6VVupQmoFNRnlsUrlP0vo1qD5UlGo4lQiqp1MFZ3WsHUvZBiG53laK1VQ2k9oV2mXaqrqabfmeZ7neQghvfFD7QYUVADazGqfprpwXw2oVGo3uFS5agIqm/ouqdbyUIVQSql9g7YurYLa/PRtG4SQ1rlRCIKgVkS1KWrzU5HatFFrrqjCq5J3UOU2XYI2nKpYalxVBlMNq31JVUhrtGFnG2p2LE8b7nXA1U4RumOKt27USzuZWsk2vVCt2KXiXrF6Ku+pptp08dbsb627zqij457crnIv1UO73bJ1rVs3sFoF9WFrmVvndmlF3K0GzDb/upw+O8mM1j+8VLdqy6qN27Fmrk2Ga8M1Ero12hW6Xek7/u/VltWByv5MEX8SnZTncq3bGWZcEX9lRf4yxXYS/w/9Ysm4pTnfNAAAAABJRU5ErkJggg==" /><br />
<br />
The topic of DB2 SQL routines is now represented via two IBM Redbooks. <br /><br />
<u>SQL Procedures, Triggers, and Functions on DB2 for i</u> (<a href="http://www.redbooks.ibm.com/redpieces/abstracts/sg248326.html?Open" target="_blank">SG24-8326-00</a>) is the new book, focusing exclusively on SQL Routines and functionality in IBM i 7.1 and 7.2.<br />
<br />
The original book has been edited to be: <u>External Procedures, Triggers and Functions on DB2 for i</u> (SG24-6503-03) and it is focused on external routines written in IBM i high level languages. Please keep in mind that while still relevant, the topic of <b>external</b> procedures, triggers and functions has not been updated or enhanced. The strategic language of relational database is Structured Query Language, and we encourage any new data-centric development to be done with SQL.<br />
<br />
While the new book is undergoing a final polishing in the hands of the editor, you are encouraged to download the draft version <a href="http://www.redbooks.ibm.com/redpieces/abstracts/sg248326.html?Open" target="_blank">here</a>.<br />
<br />
And of course, if you find yourself or your organization in need of assistance with getting the most out of DB2 for i, please do not hesitate to contact me - as the subject matters experts, the DB2 for i Center of Excellence can help.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-91731351827244953622015-09-23T14:15:00.001-05:002015-09-23T16:12:03.534-05:00Protect your analytics data and your bottom lineI ran across a new paper published by my good friend and database <a href="http://www.merriam-webster.com/dictionary/whiz%20kid" target="_blank">whiz kid</a> Shantan Kethireddy. Some of you may know or at least remember Shantan from his days as a hotshot DB2 for i query optimizer developer and dynamic technical speaker. For the past several years he has been spending his time and energy extolling the virtues of gaining business intelligence from DB2 for z/OS environments.<br />
<br />
Shantan's perspective and unique insight really resonated with me. So much so, I read the paper 3 times (I know, I'm slow on the uptake, as in, never was a whiz kid).<br />
<br />
The first time I read the paper, I was like - what's this guy talking about.<br />
<br />
The second time I read the paper, I was like - hey, this guy is on to something.<br />
<br />
The third time I read the paper, I was like, let me replace "DB2 for z/OS" with "DB2 for IBM i".<br />
<br />
I wanted to see if the points apply to my IBM i clients around the world. The answer is YES! Many, if not all of the observations and recommendations apply.<br />
<br />
I suggest you take a few minutes to read the paper, think about it, and share it with your executives and business leaders. This is important stuff.<br />
<br />
If you want to discuss when, where and what might apply to your information management environment, please reach out to me, or talk to Mr. Kethireddy.<br />
<br />
_____________<br />
<br />
<br />
<h3>
<b>Could your analytics strategy cost your business USD 100 million? </b></h3>
<br />
Technology trends and forces such as cloud, mobile and big data can represent big opportunities to bring analytic insight to the enterprise. They can also represent big risks if proper data security and governance controls are not in place. In 2015, one of the largest health benefits companies in the United States reported that its systems were the target of a massive data breach. This exposed millions of records containing sensitive consumer information such as social security numbers, medical IDs and income information. Various sources, including The Insurance Insider, suggest that this company's USD 100 million cyber-insurance policy would be depleted by the costs of notifying consumers of the breach and providing credit monitoring services—and that doesn’t consider other significant costs associated with a breach such as lost business, regulatory fines and lawsuits.<br />
<br />
Data is now so important, it has a value on the balance sheet. Cyber criminals know this. Without exception, every industry has been under attack and suffered data breaches – healthcare, government, banking, insurance, retail, telco. Once a company has been breached, hackers focus on other companies in that same industry to exploit similar vulnerabilities. In 2015 the average cost of a data breach was US$ 3.79M, causing long term damage to the brand, loss of faith and customer churn. <br />
<br />
As you think about the impacts of this and other data security breaches occurring at organizations worldwide, consider this question: how exposed is your business to a similar type of breach? To answer this question, you must first ask, “Where does the data that feeds our analytics processes originate?”<br />
<br />
See the full paper <a href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=WH&infotype=SA&htmlfid=IMW14836USEN&attachment=IMW14836USEN.PDF" target="_blank">here</a><br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-29641193778391355182015-08-17T16:45:00.000-05:002015-08-17T16:45:57.414-05:00The Importance of Understanding Your DataI originally published this article in the SAP for IBM i newsletter produced by Kolby Hoelzle, Practice Leader - SAP on IBM i Center of Excellence.<br />
<br />
If you want to know more about the advantages of running SAP in IBM i, please reach out to Kolby at: hoelzle @ us.ibm.com<br />
<br />_______<br />
<br />
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>X-NONE</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]--><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin-top:0in;
mso-para-margin-right:0in;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0in;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<br />
<h3>
<span style="font-weight: normal;">The Importance of Understanding Your Data</span>
</h3>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">Your repositories of data are growing. The transactions
and events that produce that data are increasing. The requirement to extract
more value from the data is not going away. Thus, the importance of
understanding your data and how it is being used is paramount.</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">Understanding the data and its life cycle is
traditionally the responsibility of the database engineering team.
Unfortunately, IBM i installations usually do not have a designated or
dedicated DB2 for i database engineer. This puts the organization at a
disadvantage. The good news is that this situation can be remedied relatively
easily. For more information about the DB2 for i Database Engineer position, look <a href="http://db2fori.blogspot.com/2012/11/db2-for-i-database-engineer-description.html" target="_blank">here</a>. </span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">The process of learning more about data and the SQL
statements accessing that data are accomplished through profiling. Proactive
data profiling is better than reactive data profiling. Data profiling involves
capturing and analyzing the metadata associated with the DB2 for i database
objects as well as the SQL statements issued against those objects. Metadata is
defined as “data about data”.</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">Some of the more interesting and useful database object
attributes (i.e. metadata) to understand include table size, number rows
(active and deleted), index size, column value cardinality and distribution.
Profiling and analyzing this information includes identifying the top n largest
tables and largest indexes, as well as their respective growth rates. While not
well known, there are limits to the size of DB2 table. If the limit is reached,
no more data can be put into the table, and needless to say, your business
transactions stop. Knowing the limits, and more importantly understanding the
rate at which you are approaching the limits, is how you avoid catastrophe.</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">A good query execution plan is dependent upon the query
optimizer understanding the data in the tables that are referenced. Local
selection method, join technique and grouping scheme are the best they can be
when column value cardinality and distribution are well understood. For the
database engineer to understand and accept the query optimizer’s decisions, he
or she must also understand the data. For example, does a particular column
value represent a small number of rows in the data set, or a large number of
rows in the data set?</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">Comparing metadata points and object attributes over time
provides trending information. This type of information allows for some very
interesting and meaningful analysis; and if done proactively, can assist the
business and technical leaders with planning and forecasting. To accomplish the
trending analysis, the information captured from the DB2 for i database objects
and SQL statements must be stored in a structured and organized way. In other
words, the various metadata points must be available over time to facilitate
comparisons, calculate deltas and connect the dots to produce a graph or trend
line. This means capturing the metadata on a scheduled and frequent basis and
keeping the data over time for reporting.</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">Given that the target database housing data from business
transactions resides in the live “production” system, the techniques and
methods used to capture and store the DB2 for i metadata need to be fast,
efficient and concurrent. Harvesting data about data cannot interfere with the
critical operations. On the other hand, if you do not understand the data that
represents your business, what’s the point of capture and analysis?</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<div class="MsoNoSpacing">
<span style="font-family: inherit;"><span style="font-size: small;">A suitable architecture for capturing, storing, analyzing
and reporting on the metadata looks a lot like business intelligence
architecture. As such, the data model, ETL and analysis mechanisms must be well
thought out, designed and implemented properly. This includes using a separate
(and likely smaller) system to hold the data and provide a platform for query,
analysis and reporting engines.</span></span></div>
<div class="MsoNoSpacing">
<br /></div>
<span style="font-family: inherit;"><span style="font-size: small;">The results of basic analysis and trending calculations
are reviewed, augmented and used by the DB2 for i Database Engineering team.
The goal is to assist business leaders in maintaining a viable and valuable
data centric environment. In essence, this answers the question: who should
understand the data? Furthermore, it is the responsibility of the database
engineers to formulate a plan of action to resolve any issues that appear on
the horizon BEFORE they become critical.<span style="line-height: 115%;"> </span></span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;"><span style="line-height: 115%;">While all of the capturing, analyzing and
reporting on DB2 for i metadata seems intriguing and valuable, there is still
the work involved to get the proper process and procedures in place. It just so
happens that the IBM DB2 for i Center Excellence team has a solution available
that can be used by the database engineers to facilitate the understanding of
data.</span></span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;"><span style="line-height: 115%;">For more information on the DB2 for i metadata reporting solution and/or the
importance of the DB2 for i Database Engineer, please reach out to me.</span></span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;"><span style="line-height: 115%;"> </span></span></span> <br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-5944347959908504072015-08-10T12:39:00.000-05:002015-08-10T12:40:04.890-05:00XML: Moving On and Moving In<span style="font-family: inherit;"><span style="font-size: small;">My Center of Excellence team mate and <b><i>Wizard of <strike>Oz</strike> Query Optimization</i></b> Rob Bestgen has an important message to share...</span></span><br />
<span style="font-family: inherit;"><span style="font-size: small;"><br /></span></span>
<!--[if gte mso 9]><xml>
<o:OfficeDocumentSettings>
<o:TargetScreenSize>800x600</o:TargetScreenSize>
</o:OfficeDocumentSettings>
</xml><![endif]--><br />
<span style="font-family: inherit;"><span style="font-size: small;">_____</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">Almost a decade ago IBM came out with a set of extensions,
or "extenders", for DB2. These extenders brought more capabilities to DB2 than
existed in DB2’s core capabilities at the time. </span></span><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">Two extenders features were
distributed, depending on OS release, under licensed programs 5722-DE1,
5761-DE1 or 5770-DE1:</span></span></div>
<br />
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<br /></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal"><span style="font-family: inherit;"><span style="font-size: small;"><b>DB2 Text Extender/Text Search Engine</b></span></span></li>
</ul>
<div class="MsoNormal" style="margin-left: 0.5in;">
<span style="font-family: inherit;"><span style="font-size: small;">The Text Extender provided a way to
index and search unstructured text, such as flat files and documents, using SQL
as the interface. Since potentially lots
of data in any given company resides outside the database e.g. as IFS files,
this extender provided a good way to track and search that data.</span></span></div>
<div class="MsoNormal" style="margin-left: 0.5in;">
<br /></div>
<ul style="margin-top: 0in;" type="disc">
<li class="MsoNormal"><span style="font-family: inherit;"><span style="font-size: small;"><b><span lang="DE">DB2 XML Extender</span></b></span></span></li>
</ul>
<div class="MsoNormal" style="margin-left: 0.5in;">
<span style="font-family: inherit;"><span style="font-size: small;">The XML Extender provided the
capability to create XML documents from DB2 data and to annotate (extract data
from) XML documents and store the extracted data into DB2 tables. Since XML is a common way to do EDI between
companies and agencies, this extender was a natural fit for creating XML
documents for distribution to and for processing XML documents received from
other companies and agencies.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">Since the time when the Extender product first came out, the
DB2 family members have added the necessary support that makes these extender features no
longer necessary. This includes our favorite DB2 database, <b>DB2 for i</b>.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">In the case of the Text Extender feature, the <a href="http://www-304.ibm.com/partnerworld/wps/servlet/ContentHandler/stg_ast_sys-wp-omnifind-text-search-server" target="_blank">Omnifind product</a> (5733-OMF) became available as a no charge licensed program product available for IBM i 6.1 and later. Even though the Omnifind product is a separate install from the
OS, its runtime is integrated into the database for optimal performance.</span></span></div>
<div class="MsoNormal">
<br /></div>
<span style="font-family: inherit;"><span style="font-size: small;">For the XML Extender feature, IBM added <i>integrated</i> <a href="http://www-03.ibm.com/systems/resources/systems_i_software_db2_71_enhancements.pdf" target="_blank">XML support</a> into DB2
in IBM i 7.1. This XML support, which is integrated right into the DB2
core, provides a super set of the capabilities that were available in the XML
extender.</span></span><br />
<br />
<span style="font-family: inherit;"><span style="font-size: small;">Regarding the older the extender product, effective August 16, <b>2013</b> it was <a href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=OC&subtype=NA&htmlfid=897/ENUS5761-DE1&appname=System%20Storage" target="_blank">withdrawn from marketing</a>, but continued to be supported for those customers
using one or more features.</span></span><br />
<br />
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">Well, that support is <a href="http://www-01.ibm.com/common/ssi/rep_ca/1/897/ENUS914-181/ENUS914-181.PDF" target="_blank">coming to an end</a> in September
of this year.</span></span> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The end of support timing by the way, coincides with the
end of support for IBM i 6.1 OS, though the OS support can be extended (for a
fee of course.) Unlike the OS however, there is no support extension coming for
the extender product.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now, for some customers, the end of support for the extender
product may not be a big deal. These customers will just continue to use the
product features. However, starting in
IBM i 7.2, the Extender product is not available at all.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Therein lays the potentially big issue. An application using
a feature of the Extender product could be in for a
rude awakening when migrating to IBM i 7.2 (i.e. when the applications stop working). Given the number of calls
and questions that IBM has been receiving recently, clients appear to be
finding this out the hard way.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
So if you are a user of the DB2 Extender product, or suspect
you are, what should you do?<br />
<br />
The good news is that migrating from an Extender
product feature to the corresponding alternative is available and proven.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For the Text Extender, a wealth of Omnifind documentation can
be found <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/OmniFind%20for%20IBM%20i" target="_blank">here</a>.<span style="font-family: inherit;"><span style="font-size: small;"> </span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">For the XML Extender, a whitepaper exists on just the topic
of moving from XML Extender to DB2 XML and that can be found <a href="https://www-304.ibm.com/partnerworld/wps/servlet/download/DownloadServlet?id=K$63TzTFkZwiPCA$cnt&attachmentName=replacing_xml_extender.pdf&token=MTQzODYyMzg4MTMyNg==&locale=en_ALL_ZZ" target="_blank">here</a>.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">Oh by the way, the DB2 for i SQL Reference is also a great place to learn more. The 7.1 flavor can be found <a href="http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/db2/rbafzintro.htm?lang=en" target="_blank">here</a>, and the 7.2 flavor <a href="http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_72/db2/rbafzintro.htm?lang=en" target="_blank">here</a>.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">With that said, the migration from an Extender feature is not
seamless and carefree. The Extender features were written before SQL standards were in place
and, as might be expected, their interfaces are different from what was
eventually put into the database. For example, the XML Extender feature made
heavy use of DTDs while, for DB2 integrated XML, XML SCHEMAs are the standard. In
short, some amount of "effort" is needed to do the migration.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">If the thought of pursuing the migration from Extenders
seems overwhelming, or you are unsure how exposed you might be, there’s
more good news. The DB2 for i Center of Excellence stands ready to help you with the
migration. Our team has the knowledge and skills to assist you with evaluation, guidance and prototyping as needed.</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">The bottom line is this: if you are using the DB2 Extender product, it’s time to move
on past the product and move into the integrated support of DB2.</span></span></div>
<br />
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-family: inherit;"></span></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">_____</span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: inherit;"><span style="font-size: small;">Thanks Rob! You have illuminated a dark and stormy issue for folks migrating their "extended" database applications to 7.2. </span></span></div>
<br />
<div class="MsoNormal">
</div>
<div class="MsoNormal">
</div>
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-5942052796969657606.post-45355555244807927992015-07-28T14:02:00.000-05:002015-07-28T14:02:32.481-05:00Treading Water, Sharks CirclingThis post is brought to you by my long time teammate and good friend Doug Mack. Besides his many other areas of expertise, Doug leads the business intelligence / analytics portion of our DB2 for i Center of Excellence.<br />
<br />
<div class="MsoNormal">
____</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It seems like sharks are everywhere in the news these days,
with all the reported sightings and of course the <a href="http://www.imdb.com/title/tt2724064/" target="_blank">Sharknado</a> movies (an
interesting concept by the way!). The data centric world is like that too... sometimes you get the feeling of being chased by "data
sharks"!</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It occurs to me that if you are your company’s “go to person” for
data (think urgent RPG coder or Query/400 report writer), you’re probably doing all
you can to keep swimming faster than the business analyst “sharks” requesting that slab of
data! While it's completely understandable that the analysts urgently need this data to sense what's going on
in the business, you’re just trying to keep your head above water. <span style="mso-spacerun: yes;"> </span></div>
<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It doesn’t have to be this way. While it might take some disciplined
project planning and work to get there, you can alleviate YOUR workload and
create an environment that either allows end users to run their own reports
whenever they want (this can be called “Self Service BI”) or you can automate the
execution and publishing of reports and dashboards, including visualization on
their handheld device of choice. Now you can sit back on the beach with a
tropical umbrella drink while the sharks wander off. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Trying to tackle data analysis has been around since, well,
Query for the System 36! But in our team’s experience, many folks are still sinking under the burden of older tools and processes that prevent the kind of buoyancy and agility required to meet business demands.
Lacking a suitable budget for big bang projects doesn’t help either. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To this end, IBM introduced <a href="http://www-03.ibm.com/systems/power/software/i/db2/webquery/" target="_blank">DB2 Web Query</a> some time ago.
While it’s true you can use it to modernize and re-engineer your Query/400 reports - that is
really underselling Web Query’s capabilities. You can not only create that self-service
environment and streamline report publishing; you can also address data
transformations that exploit this tool at a whole new level. With the introduction
of DB2 Web Query DataMigrator ETL Extension, clients can now automate the often
difficult task of consolidating, transforming, and optimizing the data for
business intelligence applications. This supports the creation of a data mart
or data warehouse that completely isolates and secures the data. <span style="mso-spacerun: yes;"> </span>In many of the client situations we encounter,
the data anomalies that make analytics difficult can be simplified with a data
mart architecture and ETL (Extract, Transformation, and Load) tool. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Did you know that since 2008 IBM has shipped at least a
limited use license of DB2 Web Query to almost every IBM i customer. But in
many cases, those licenses are still at Version 1 of the product, which was
essentially replaced with Version 2 in 2012. And just recently, IBM introduced
the latest version, 2.1.1. In other words, you very likely own licenses to an
older version of Web Query, but you’re missing out on some tremendous
enhancements, including wizard analytics, geographical map visualizations,
personal dashboards, mobile device support, and the aforementioned DataMigrator
ETL extension. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Want to get some shark repellent? Why not take a look at
some of the features of DB2 Web Query V2.1.1, and learn how to create that
optimized “self service” environment to keep the frenzied school at bay! </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To learn more about V2.1.1, check out the end user and
wizard analytics video demonstrations <a href="http://ibm.co/db2wqwiki" target="_blank">here</a>. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To find out how to
acquire, install, and set up the product, you can also view the set of getting
started <a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W516d8b60d32c_4fc5_a811_5f3d840bf524/page/Getting%20Started%20Videos" target="_blank">videos</a> on that same wiki page! </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
____</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Thanks Doug! And let me add, if you are interested in making a difference with data sooner than later, consider setting up that <a href="http://db2fori.blogspot.com/2015/06/yes-you-need-sandbox.html" target="_blank">sandbox</a> I talked about.</div>
<div class="MsoNormal">
</div>
Unknownnoreply@blogger.com0