Quantcast
Channel: DFSORT – Srinimf
Viewing all 43 articles
Browse latest View live

ZOS-How DFSORT Works In Simple Way

$
0
0

DFSORT has very sophisticated record selection capabilities, whether before any sort (INCLUDE / OMIT) or after the sort (OUTFIL INCLUDE / OMIT).

With OUTFIL INCLUDE / OMIT, you can use different criteria to send records to multiple output destinations, as in the below fig. In this example, records are selected before the actual sort with INCLUDE and then reformatted with INREC. Then, the sort data is written to the following destinations:

  • SORTOUT

  • OUTFIL INCLUDE 1

  • OUTFIL INCLUDE 2

Mainframe+JOBS

Mainframe+JOBS

Record Reformatting:

DFSORT has versatile record editing capabilities, whether using INREC on input or OUTREC or OUTFIL on output. Unless you are writing to multiple destinations or need some specific OUTFIL feature, it is recommended that you use the OUTREC statement rather than the OUTFIL statement.

Here are some examples of reformatting capabilities:

  • Overlaying fields

  • Adding fields at the end of records

  • Moving fields

  • Finding and replacing strings, both as substrings and as direct lookups

  • Manipulate timestamps and add the current time and date into records

  • Reformat fields, such as converting to and from hexadecimal, translating from lower case to upper case, and number reformatting

  • Perform arithmetic operations, such as adding two numeric fields together to create a new field

  • Inserting sequence numbers

  • Left- and right-justifying fields

  • Converting between variable-length and fixed-length records and vice versa

With IFTHEN, you can selectively reformat records, based on whether the record meets specific criteria.

Originally, DFSORT only reformatted records by explicitly specifying all the fields. With OVERLAY, you can now specify just the fields to be changed, which simplifies many reformatting applications.

Sample JCL for IFTHEN:

//COPY1  EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD *
AXLE
BOX
AERIAL
DEPOT
ASPIC
CARROT
/*
//SORTOUT  DD SYSOUT=*
//SYSIN    DD *
OPTION COPY
INREC IFTHEN=(WHEN=(1,1,CH,EQ,C’A’),OVERLAY=(8:C’YES’)),
IFTHEN=(WHEN=NONE,OVERLAY=(8:C’NO’))
/*

 


Filed under: DFSORT, JCL, Mainframe Tagged: DFSORT

7 Strategies Of Batch Modernization In ZOS

$
0
0
Teradata+Material

Teradata+Material

The following 7 strategies improve batch performance, that in turn reduce cycle time.

  • Ensuring the system is properly configured
  • mainframe+db2+jobs
    1. Ensuring a properly configured system means making sure there are generally adequate system resources, so work flow is not inhibited, such as:
    2. Adequate CPU to avoid CPU queuing
    3. Memory so the system does not page
    4. A powerful enough I/O subsystem
    5. A DB2 Data Sharing environment with adequate resources
    6. As well as resource considerations, ensure that important systems and other software are set up properly as follows:
    7. Workload Manager (WLM) set up to provide for good batch throughput
    8. DB2 subsystems optimally tuned for batch
    • Implementing data in memory (DIM)
    1. Implementing data in memory (DIM) techniques is a complex task, but one likely to yield good results. It means exploiting appropriately the various software facilities available to eliminate unnecessary I/Os. These I/Os include repeated reads of the same data, such as:
    2. DB2 buffer pools
    3. Virtual I/O (VIO) in Central Storage
    4. Queued Sequential Access Method (QSAM) buffering
    5. Batch LSR Subsystem (BLSR) exploiting VSAM Local Shared Resources buffering
    6. DFSORT Large Memory Object sorting
    7. To be able to implement DIM techniques, you need spare memory, spare CPU capacity, and a batch workload that is I/O-intensive
    • Optimizing I/O
    1. Optimizing I/O means ensuring the I/O processing done by batch jobs is performed as quickly as possible, such as:
    2. The correct use of DS8000 Cache functions
    3. Exploiting modern Channel Programming functions such as zHPF and MIDAWs
    4. Using the fastest FICON channels
    5. Using HyperPAV to minimize IOSQ time
    6. I/O optimization is most important when the batch workload is I/O-intensive. Where there is little spare CPU capacity I/O optimization could cause an I/O bottleneck to be replaced by a CPU bottleneck.
    • Increasing parallelism
    1. Increasing parallelism means running more things alongside each other, such as:
    2. Reducing the elapsed time of a set of jobs by running more of them alongside each other.
    3. Performing I/O in parallel, using techniques such as Stripes.
    4. Performing DB2 queries using CPU Query Parallelism to use multiple TCBs.
    5. Cloning batch jobs to work against subsets of the data.
    6. To be able to run more work in parallel, you need adequate resources, most importantly spare CPU capacity and memory, and adequate I/O bandwidth.
    • Reducing the impact of failures
    1. Reducing the impact of failures means ensuring that any prolongation of the run time of the batch workload by failures is minimized. For example, this includes such actions as:
    2. Making batch jobs more reliable by fixing problems in the code.
    3. Ensuring that recovery procedures are effective and swift.
    • Increasing operational effectiveness
    1. Increasing operational effectiveness means ensuring scheduling policies are executed accurately and promptly, for examples:
    2. Using an automatic scheduler such as Tivoli Workload Scheduler.
    3. Using the NetView® automation product.
    • Improving application efficiency
    1. Improving application efficiency means looking at ways to make the applications process more efficiently, such as:
    2. Replacing obviously long sequential searches by hash searches or binary searches.
    3. Replacing self-written processing with DFSORT processing as this is optimized for speed.

    Ref:IBM_Redbooks


    Filed under: DFSORT, ZOS Tagged: Batch Modernization, Mainframe

    JCL- INCLUDE And OMIT With Examples

    $
    0
    0
    15+Rapidly+Growing+IT+Jobs

    15+Rapidly+Growing+IT+Jobs

    The best way to improve the efficiency of a sort or a merge is to reduce the number of records that are sorted or merged. To do that, you can use the INCLUDE and OMIT statements to identify the records that should be included or omitted from the sort or merge.

    The syntax of the INCLUDE and OMIT statements

    INCLUDE COND=(field,comparison,{field }, [ {AND}, ]…)
    {constant} {OR }
    OMIT COND=(field,comparison,{field }, [ {AND}, ]…)
    {constant} {OR }

    Examples:

    INCLUDE COND=(1,1,CH,EQ,C’A’)Include only the records that have an A in byte 1.

    OMIT COND=(1,1,CH,EQ,C’A’)Omit the records that have an A in byte 1.

    INCLUDE COND=(72,5,PD,GE,1000)Include only the records with a packed-decimal value in bytes 72-76 that’s greater than or equal to 1000.

    INCLUDE COND=(72,5,PD,GE,1000,OR, 72,5,PD,LT,10)Include only the records with a packed-decimal value in bytes 72-76 that’s greater than or equal to 1000 or less than 10.


    Filed under: DFSORT, JCL, Mainframe Tagged: Include, JCL Sort, OMIT

    Sorting Multiple Fields in DFSORT

    $
    0
    0
    Datastage+Oracle+Jobs

    Datastage+Oracle+Jobs

    Let us sort records in the bookstore data set by specifying multiple control fields. When you specify two or more control fields, you specify them in the order of greater to lesser priority. Note that control fields might overlap or be contained within other control fields.

    I want to sort in the following fields:

    1. Course department
    2. Course number
    3. Instructor’s last name
    4. Instructor’s initials
    5. Book title

    So, if two records have the same department, they are sorted by course number. If they also have the same course number, they are sorted by instructor’s last name. If they also have the same last name, they are sorted by initials. Finally, if they also have the same initials, they are sorted by title.

    SORT FIELDS=(11ð,5,CH,A,115,5,CH,A,145,15,CH,A,16ð,2,CH,A,1,75,CH,A)


    Filed under: DFSORT, JCL, Mainframe Tagged: DFSORT, JCL, Mainframe, sort

    Project Manager Responsibilities in Software Company (1 of 2)

    $
    0
    0

    ID-10042653Project Manager-Software

    Project managers run the projects. Their role differs from that of technical managers, whose primary responsibility is maintaining the integrity of the systems.

    How project managers learn skills

    These managers have taken classes, read books, or attended seminars specifically dealing with the concepts of running a project. From this training they have learned the different parts of a project and how to put together a project plan to execute it.

    They also understand tangible items such as critical paths, variances, scope creep, estimating, documentation, acquiring resources, setting up funding, budgeting, financial reporting, controlling when the project enters and ends a phase, communication plans, procurement, reporting project progress, and status.

    Different Skills of Project Manager

    • Unlike technical managers, who are required to bring system, resource, and company knowledge, project managers are required to have knowledge only on how to run the project.
    • Each project a project manager runs will require different resources with different skills and knowledge because each project is unique. Resources are only assigned temporary to the project because they will only work on it for a short time. This means that project managers are not responsible for staff development.
    • To staff a project, these managers send a resource request to the area affected by the change. Who gets assigned and when the resource is available to work on the project are controlled not by the project managers but by the managers to whom the subordinates officially report. Project managers just take the resource names given to them and assign them to a task in the project plan.
    • Project managers’ responsibility to upper management is to report the project status.
    • Project managers gather the status information by talking to other project team members and checking the project plan.
    • From the project plan they can report the financial part of the project along with the completion percentage of the project. They also report and ask for help from upper management for any problems that are outside the control of the project. The most common issue is lack of available resources to do a project.
    • Departments that own the resources might decide that currently there are more important tasks for their staff than to work a project. Upper management needs to step in and help negotiate a solution. One solution could be that the department needs to release some resources to work on the project because it is a high priority. Another option is for upper management to give project managers approval to bring in outside contractors to do the project work.

    Filed under: Analytics, Bangalore IT Jobs, Big Data, Bigdata, CICS, Cloud, COBOL, Credit Cards, Credit Cards Domain, Data Warehousing & Tools, DB2, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, Hadoop, IMDB/DC, ISPF, JCL, Mainframe, Oracle, PL/I, PL/SQL, Project Manager, Python, Quiz, Self-development, SQL, Srinimf Jobs, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: Project Management, Project Manager responsibilities, Project Manager Role in software

    Alternative Jobs For IT Professionals

    DB2- Date, Time, Timestamp

    $
    0
    0

    SrinimfJOBSThe basics

    To get the current date, time, and timestamp using SQL, reference the appropriate DB2 registers:

    SELECT current date FROM sysibm.sysdummy1 SELECT current time FROM sysibm.sysdummy1 SELECT current timestamp FROM sysibm.sysdummy1

    The sysibm.sysdummy1 table is a special in-memory table that can be used to discover the value of DB2 registers as illustrated above. You can also use the VALUES keyword to evaluate the register or expression. For example, from the DB2 Command Line Processor (CLP), the following SQL statements reveal similar information:

    VALUES current date VALUES current time VALUES current timestamp

    For the remaining examples, I will simply provide the function or expression without repeating SELECT ... FROM sysibm.sysdummy1 or using the VALUES clause.

    To get the current time or current timestamp adjusted to GMT/CUT, subtract the current timezone register from the current time or timestamp:

    current time – current timezone current timestamp – current timezone

    Given a date, time, or timestamp, you can extract (where applicable) the year, month, day, hour, minutes, seconds, and microseconds portions independently using the appropriate function:

    YEAR (current timestamp) MONTH (current timestamp) DAY (current timestamp) HOUR (current timestamp) MINUTE (current timestamp) SECOND (current timestamp) MICROSECOND (current timestamp)

    Extracting the date and time independently from a timestamp is also very easy:

    DATE (current timestamp) TIME (current timestamp)

    You can also perform date and time calculations using, for lack of a better term, English:

    current date + 1 YEAR current date + 3 YEARS + 2 MONTHS + 15 DAYS current time + 5 HOURS – 3 MINUTES + 10 SECONDS

    To calculate how many days there are between two dates, you can subtract dates as in the following:

    days (current date) – days (date(‘1999-10-22′))

    And here is an example of how to get the current timestamp with the microseconds portion reset to zero:

    CURRENT TIMESTAMP – MICROSECOND (current timestamp) MICROSECONDS

    If you want to concatenate date or time values with other text, you need to convert the value into a character string first. To do this, you can simply use the CHAR() function:

    char(current date) char(current time) char(current date + 12 hours)

    To convert a character string to a date or time value, you can use:

    TIMESTAMP (‘2002-10-20-12.00.00.000000′) TIMESTAMP (‘2002-10-20 12:00:00′) DATE (‘2002-10-20′) DATE (’10/20/2002′) TIME (’12:00:00′) TIME (‘12.00.00′)

    The TIMESTAMP(), DATE() and TIME() functions accept several more formats. The above formats are examples only and I’ll leave it as an exercise for the reader to discover them.

    Warning:
    From the DB2 UDB V8.1 SQL Cookbook by Graeme Birchall (see http://ourworld.compuserve.com/homepages/Graeme_Birchall).

    What happens if you accidentally leave out the quotes in the DATE function? The function still works, but the result is not correct:

    SELECT DATE(2001-09-22) FROM SYSIBM.SYSDUMMY1;

    Answer:

    ====== 05/24/0006

    Why the 2,000 year difference in the above results? When the DATE function gets a character string as input, it assumes that it is valid character representation of a DB2 date, and converts it accordingly. By contrast, when the input is numeric, the function assumes that it represents the number of days minus one from the start of the current era (that is, 0001-01-01). In the above query the input was 2001-09-22, which equals (2001-9)-22, which equals 1970 days.


    Back to top

    Date functions

    Sometimes, you need to know how the difference between two timestamps. For this, DB2 provides a built in function called TIMESTAMPDIFF(). The value returned is an approximation, however, because it does not account for leap years and assumes only 30 days per month. Here is an example of how to find the approximate difference in time between two dates:

    timestampdiff (, char( timestamp(‘2002-11-30-00.00.00′)- timestamp(‘2002-11-08-00.00.00′)))

    In place of, use one of the following values to indicate the unit of time for the result:

    • 1 = Fractions of a second
    • 2 = Seconds
    • 4 = Minutes
    • 8 = Hours
    • 16 = Days
    • 32 = Weeks
    • 64 = Months
    • 128 = Quarters
    • 256 = Years

    Using timestampdiff() is more accurate when the dates are close together than when they are far apart. If you need a more precise calculation, you can use the following to determine the difference in time (in seconds):

    (DAYS(t1) – DAYS(t2)) * 86400 + (MIDNIGHT_SECONDS(t1) – MIDNIGHT_SECONDS(t2))

    For convenience, you can also create an SQL user-defined function of the above:

    CREATE FUNCTION secondsdiff(t1 TIMESTAMP, t2 TIMESTAMP) RETURNS INT RETURN ( (DAYS(t1) – DAYS(t2)) * 86400 + (MIDNIGHT_SECONDS(t1) – MIDNIGHT_SECONDS(t2)) ) @

    If you need to determine if a given year is a leap year, here is a useful SQL function you can create to determine the number of days in a given year:

    CREATE FUNCTION daysinyear(yr INT) RETURNS INT RETURN (CASE (mod(yr, 400)) WHEN 0 THEN 366 ELSE CASE (mod(yr, 4)) WHEN 0 THEN CASE (mod(yr, 100)) WHEN 0 THEN 365 ELSE 366 END ELSE 365 END END)@

    Finally, here is a chart of built-in functions for date manipulation. The intent is to help you quickly identify a function that might fit your needs, not to provide a full reference. Consult the SQL Reference for more information on these functions.

    SQL Date and Time Functions

     DAYNAME

     Returns a mixed case character string containing the name of the day (e.g., Friday) for the day portion of the argument.

     DAYOFWEEK

     Returns the day of the week in the argument as an integer value in the range 1-7, where 1 represents Sunday.

     DAYOFWEEK_ISO

     Returns the day of the week in the argument as an integer value in the range 1-7, where 1 represents Monday.

     DAYOFYEAR

     Returns the day of the year in the argument as an integer value in the range 1-366.

     DAYS

     Returns an integer representation of a date.

     JULIAN_DAY

     Returns an integer value representing the number of days from January 1, 4712 B.C. (the start of Julian date calendar) to the date value specified in the argument.

     MIDNIGHT_SECONDS

     Returns an integer value in the range 0 to 86 400 representing the number of seconds between midnight and the time value specified in the argument.

     MONTHNAME

     Returns a mixed case character string containing the name of month (e.g., January) for the month portion of the argument.

     TIMESTAMP_ISO

     Returns a timestamp value based on date, time or timestamp argument.

     TIMESTAMP_FORMAT

     Returns a timestamp from a character string that has been interpreted using a character template.

     TIMESTAMPDIFF

     Returns an estimated number of intervals of the type defined by the first argument, based on the difference between two timestamps.

     TO_CHAR

     Returns a character representation of a timestamp that has been formatted using a character template. TO_CHAR is a synonym for VARCHAR_FORMAT.

     TO_DATE

     Returns a timestamp from a character string that has been inter-preted using a character template. TO_DATE is a synonym for TIMESTAMP_FORMAT.

     WEEK

     Returns the week of the year of the argument as an integer value in range 1-54. The week starts with Sunday.

     WEEK_ISO

     Returns the week of the year of the argument as an integer value in the range 1-53.


    Back to top

    Changing the date format

    A common question I get often relates to the presentation of dates. The default format used for dates is determined by the territory code of the database (which can be specified at database creation time). For example, my database was created using territory=US. Therefore the date format looks like the following:

    values current date 1 ———- 05/30/2003 1 record(s) selected.

    That is, the format is MM/DD/YYYY. If you want to change the format, you can bind the collection of db2 utility packages to use a different date format. The formats supported are:

     DEF

     Use a date and time format associated with the territory code.

     EUR

     Use the IBM standard for Europe date and time format.

     ISO

     Use the date and time format of the International Standards Organization.

     JIS

     Use the date and time format of the Japanese Industrial Standard.

     LOC

     Use the date and time format in local form associated with the territory code of the database.

     USA

     Use the IBM standard for U.S. date and time format.

    To change the default format to ISO on windows (YYYY-MM-DD), do the following steps:

    1. On the command line, change your current directory to sqllib\bnd.For example:
      On Windows: c:\program files\IBM\sqllib\bnd
      On UNIX:/home/db2inst1/sqllib/bnd
    2. Connect to the database from the operating system shell as a user with SYSADM authority:
      db2 connect to DBNAME db2 bind @db2ubind.lst datetime ISO blocking all grant public

      (In your case, substitute your database name and desired date format for DBNAME and ISO, respectively.)

    Now, you can see that the database uses ISO date format:

    values current date 1 ———- 2003-05-30 1 record(s) selected.

    Back to top

    Custom Date/Time Formatting

    In the last example, we demonstrated how to change the way DB2 presents dates in some localized formats. But what if you wish to have a custom format such as ‘yyyymmdd’? The best way to do this is by writing your own custom formatting function.

    Here is the UDF:

    create function ts_fmt(TS timestamp, fmt varchar(20)) returns varchar(50) return with tmp (dd,mm,yyyy,hh,mi,ss,nnnnnn) as ( select substr( digits (day(TS)),9), substr( digits (month(TS)),9) , rtrim(char(year(TS))) , substr( digits (hour(TS)),9), substr( digits (minute(TS)),9), substr( digits (second(TS)),9), rtrim(char(microsecond(TS))) from sysibm.sysdummy1 ) select case fmt when ‘yyyymmdd’ then yyyy || mm || dd when ‘mm/dd/yyyy’ then mm || ‘/’ || dd || ‘/’ || yyyy when ‘yyyy/dd/mm hh:mi:ss’ then yyyy || ‘/’ || mm || ‘/’ || dd || ‘ ‘ || hh || ‘:’ || mi || ‘:’ || ss when ‘nnnnnn’ then nnnnnn else ‘date format ‘ || coalesce(fmt,”) || ‘ not recognized.’ end from tmp

    The function code may appear complex at first, but upon closer examination, you’ll see that it is actually quite simple and elegant. First, we use a common table expression (CTE) to strip apart a timestamp (the first input parameter) into its individual components. From there, we check the format provided (the second input parameter) and reassemble the timestamp using the requested format and parts.

    The function is also very flexible. To add another pattern simply append another WHEN clause with the expected format. When an unexpected pattern is encountered, an error message is returned.

    Usage examples:

    values ts_fmt(current timestamp,’yyyymmdd’) ‘20030818’ values ts_fmt(current timestamp,’asa’) ‘date format asa not recognized.’

    Reference see here.


    Filed under: DB2, DB2 V11, DFSORT, Mainframe Tagged: Date, db2, Time, Timestamp

    Project Manager Responsibilities in Software Company (2 of 2)

    $
    0
    0

    ID-10033210Roles and responsibilities: The Project Manager has the authority to run the project on a day-to-day basis on behalf of the Project Board .

    Responsibility: The Project Manager’s prime responsibility is to ensure that the project produces the required products, to the required standard of quality and within the specified constraints of time and cost. The Project Manager is also responsible for the project producing a result that is capable of achieving the benefits defined in the Business Case.

    Some of Specific Responsibilities:

    • manage the production of the required products;
    • direct and motivate the project team;
    • plan and monitor the project;
    • agree any delegation and use of Project Assurance roles required by the Project Board;
    • produce the Project Brief, Project Initiation Documentation and Benefits Review Plan;
    • prepare Project, Stage and, if necessary, Exception Plans in conjunction with Team Managers, and appointed Project Assurance roles, and agree them with the Project Board;

    Role of Team Manager:

    The allocation of this role to one or more people is optional. Where the project does not warrant the use of a Team Manager, the Project Manager takes the role.

    The Project Manager may find that it is beneficial to delegate the authority and responsibility for planning the creation of certain products and managing a team of technicians to produce those products. There are many reasons why it may be decided to employ this role. Some of these are the size of the project, the particular specialist skills or knowledge needed for certain products, geographical location of some team members, and the preferences of the Project Board.

    The Team Manager’s prime responsibility is to ensure production of those products defined by the Project Manager to an appropriate quality, in a timescale and at a cost acceptable to the Project Board. The Team Manager reports to and takes direction from the Project Manager.


    Filed under: Analytics, Bangalore IT Jobs, Big Data, Bigdata, CICS, Cloud, COBOL, Credit Cards, Credit Cards Domain, Data Warehousing & Tools, DB2, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, Hadoop, IMDB/DC, ISPF, JCL, Mainframe, Oracle, PL/I, PL/SQL, Project Manager, Python, Quiz, Self-development, SQL, Srinimf Jobs, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: Mainframe, Project Management, Project Manager, Project Manager responsibilities, Project Manager Role in software, Team Manager

    First blog-Srinimf

    $
    0
    0

    SRINIMF|Tech.Jobs.Biz.SuccessFirst blog post from Srinimf.com. Motto of this website is to share technical articles on Mainframe, Cloud, Analytics, Big data and Social Media. It suggests right job openings for job seekers while searching articles.

    Facebook Page of this Blog:

    Your blog is on Facebook. You can share these posts to your friends.

    Facebook: https://www.facebook.com/srinimf


    Filed under: Analytics, Bangalore IT Jobs, Big Data, Bigdata, CICS, Cloud, COBOL, Credit Cards, Credit Cards Domain, Data Warehousing & Tools, DB2, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, Hadoop, IDMS, IMDB/DC, IMS DC, ISPF, JCL, Mainframe, PL/I, PL/SQL, Project Manager, Python, QMF, Quiz, Self-development, SQL, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: Mainframe

    Mainframe: DB2 Joins Vs Sub query Key Differences

    $
    0
    0

    SAP HANA+SKills+JOBSKey concepts of JOINs

    JOINs are powerful relational operators that combine data from multiple tables into a single result table. The source tables may have little (or even nothing) in common with each other. SQL supports a number of types of JOINs.

    Any multitable query is a type of JOIN. The source tables are joined in the sense that the result table includes information taken from all the source tables. The simplest JOIN is a two-table SELECT that has no WHERE clause qualifiers. Every row of the first table is joined to every row of the second table. The result table is referred to as the Cartesian product of the two source tables — the direct product of the two sets. (The less fancy name for the same thing is cross join.) The number of rows in the result table is equal to the number of rows in the first source table multiplied by the number of rows in the second source table.

    Key concepts of Sub-Query

    A subquery is an SQL statement that is embedded within another SQL statement. It’s possible for a subquery to be embedded within another subquery, which is in turn embedded within an outermost SQL statement. Theoretically, there is no limit to the number of levels of subquery that an SQL statement may include, although any given implementation has a practical limit.

    A key feature of a subquery is that the table or tables that it references need not be the same as the table or tables referenced by its enclosing query.

    Kinds of sub-query-Different kinds of nested queries produce different results. Some sub-queries produce a list of values that is then used as input by the enclosing statement. Other subqueries produce a single value that the enclosing statement then evaluates with a comparison operator. A third kind of subquery, called a correlated subquery.

    Tips:

    • When tables are more JOIN is good
    • When tables are less Sub-query is good. Since more tables cause sub-queries become complex
    • Again, which one to is that depends!

    Filed under: Big Data, COBOL, DFSORT, Easytrive, JCL, Mainframe, Oracle, Quiz, SQL, Srinimf Jobs Tagged: db2, Differences, JOINS, Mainframe, SUb query

    Mainframe : Advanced CICS for Senior Software Developers(1 of 5)

    $
    0
    0

    Mainframe+CICS+COBOL+Jobs+Apply todayMany CICS-Mainframe programmers do not know exact difference between ATI and START. Understanding these concepts is little tricky. That is why I am posting these concepts for Senior software developers.

    Since CICS has multitasking capability, let us see how it initiates different tasks.

    ATI

    Automatic time ordered transaction initiation, or time ordered ATI, is a CICS facility lets you start a new task by issuing a START command from a program.

    START==> Will initiate new task in layman terms.

    Before you understand ATI, you need to understand the difference between starting a task, and using the program control commands (LINK or XCTL) to invoke a program.

    As a multitasking system, CICS can process more than one task at a time.

    As a result, a task initiated by a START command can execute simultaneously with the task that issued the START command. In other words, the starting task can run at the same time as the started task.

    In contrast, programs invoked by LINK and XCTL commands run one at a time as part of a single task.

    To illustrate, consider how you might use program control and interval control commands in a menu driven application that includes a data entry program that requires user interaction and a report preparation program that doesn’t.

    When a user selects the data entry program, the menu program should issue an XCTL command to transfer control directly to that program. If the user selects the report preparation program, though, the menu program should issue a START command to start the program as a separate task. Then, control returns to the menu program, and the user can continue other work while the report is being prepared.

    Final Notes:

    • A task that is initiated by START is asynchronous. No need to wait for instant reply. It is a separate task CICS initiated. So user can proceed with other tasks.

    -Program invoked by LINK and XCTL, are synchronous, that means user has to wait till gets reply from program


    Filed under: CICS, DB2, DB2, DB2 V11, DFSORT, Easytrieve, IDMS, IMDB/DC, IMS DC, JCL, Mainframe, Python, QMF, SAS, SQL, Stratus COBOL, ZOS Tagged: Advanced CICS, ATI, Automatic time ordered transaction initiation, CICS, control commands, LINK, Mainframe, menu program, program control, SAS, START, XCTL

    These IMS DB, IMS DC Error Codes asked in Many Mainframe Interviews

    $
    0
    0

    Hadoop+Jobs+Apply nowIMS DB, IMS DC error codes for mainframe interviews. How to prepare for IMS DB interviews is a big challenge. I made here simplified.

    AM – Proc option ‘P’ is not defined for command code

    VI – Variable segment size is crossing maximum size

    DJ- Get hold call not given in Delete or Replace call

    AJ- Invalid SSA (not following rules in SSA)

    AK – Invalid key in SSA

    DA- Trying to delete sequential field

    BB- Blank for successful call

    GE- End of segment

    GB- End of database

    II- Duplicate insert of segment


    QC- No more in the que for GU call

    QD- No more in the que for GN call


    Filed under: CICS, COBOL, DB2, DB2, DB2 V11, DFSORT, Easytrieve, IDMS, IMDB/DC, IMS DC, ISPF, JCL, Mainframe, QMF, Quiz, Self-development, SQL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: cobol, IMS DB Error codes, IMS DB Interview Questions, IMS DC error codes, JCL, Mainframe

    Mainframe: Simplify Your DB2 SQL Query with these Built-in Functions

    $
    0
    0

    DB2-Built-in_FunctionsDB2 built-in functions are great to use to simplify your SQL query. There are different functions available. Alternative functions improve the understanding of SQL query.

    I hope you enjoyed my previous post on some built-in functions.

    Use Left side functions (alternative functions) instead of Right side functions:

    ABS  ==> ABSVAL
    COALESCE  ===> VALUE, IFNULL
    DAY ==> DAYOFMONTH
    DECIMAL ==> DEC
    DOUBLE ==> FLOAT
    GREATEST ==> MAX (scalar)
    INTEGER==> INT
    LEAST==> MIN (scalar)
    LOG==> LN
    LOWER ==> LCASE
    TIMESTAMP_FORMAT ==> TO_DATE
    TRUNCATE ==> TRUNC
    UPPER==> UCASE
    VARIANCE==> VAR
    VARIANCE_SAMP ==> VAR_SAMP

    {Ref:IBM and Mullins}


    Filed under: Analytics, Bangalore IT Jobs, Bigdata, DB2, DB2 V11, DFSORT, Mainframe, PL/SQL, QMF, ZOS Tagged: Built-in functions, COALESCE, db2, db2 sql, IFNULL, Mainframe, sql

    Credit Cards Tokenization- Domain KNowledge

    $
    0
    0

    INFORMATIC+DATA WAREHOUSING+JOBS,CareerAs you whip out your credit card this holiday season, you may wonder how secure your data are at the stores where you’re shopping. After all, it’s almost the one-year anniversary of the massive Target credit card breach, and high-profile database thefts show few signs of slowing down.

    Given the consistent stream of announcements, you might be asking why merchants like Home Depot, Target and Bebe have piles of credit card account numbers that can be stolen in the first place.

    What if there was a way to buy things without ever giving your credit card number to the store?

    Actually, there is. It’s a concept known as “tokenization.”

    The idea is simple. A token is an item that stands in the place of something else, as a subway token once represented the dollar it cost for a train ride. In the credit card world, tokenization means taking credit card account numbers out of merchants’ hands, replacing them with strings of characters–essentially, digital tokens–that would, theoretically, be useless if stolen by criminals.

    A new token can be created for each transaction, making even a one-time purchase at a small online retailer feel more secure. Or busy merchants can assign their own token to each consumer, meaning a stolen database couldn’t be used at any other retailer. Only banks would know consumers’ real account information.

    Read more here


    Filed under: Analytics, Bangalore IT Jobs, Bigdata, COBOL, Credit Cards, Credit Cards Domain, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, IDMS, IMDB/DC, IMS DC, ISPF, Project Manager, Python, QMF, Quiz, SAS, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, ZOS Tagged: Credit Card Domain Knowledge, credit cards, Mainframe, Tokenization

    Cashback In Credit Or Debit Cards

    $
    0
    0
     CREDIT+CARD+DOMAIN+IT+JOBS

    CREDIT+CARD+DOMAIN+IT+JOBS

    A Cashback reward program is an incentive program operated by credit card companies where a percentage of the amount spent is paid back to the card holder. Many credit card issuers, particularly those in the United Kingdom and United States, run programs to encourage use of the card where the card holder is given points, air miles or a monetary amount. This last benefit, a monetary amount, is usually known as cashback or cash back reward.

    credit+cards+jobs

    Where a card issuer operates such a scheme, card holders typically receive between 0.5% and 2% of their net expenditure (purchases minus refunds) as an annual rebate, which is either credited to the credit card account or paid to the card holder separately.[1]

    When accepting payment by credit card, merchants typically pay a percentage of the transaction amount in commission to their bank or merchant services provider. Merchants are not allowed to charge a higher price when a credit card is used as opposed to other methods of payment, so there is no penalty for a card holder to use their credit card. The credit card issuer is sharing some of this commission with the card holder to incentivise them to use the credit card when making a payment.

    Rewards based credit card products like cash back are more beneficial to consumers who pay their credit card statement off every month. Rewards based products generally have higher Annual percentage rate. If the balance were not paid in full every month the extra interest would eclipse any rewards earned. Most consumers do not know that their rewards-based credit cards charge higher fees to the vendors who accept them without vendors having any notification.

    What is the benefit for Card issuer?

    When merchants accept payment via credit card, they are required to pay a percentage of the transaction amount as a fee to the credit card company. If the card holder has a participating cash back rewards program, the credit card issuer is simply sharing some of the merchant fees with the consumer. The goal is to incentivize people to use their credit cards when making payments rather than cash, which earns them no rewards. The more that a consumer uses a credit card, the more merchant fees the credit card company can earn


    Filed under: Analytics, Bangalore IT Jobs, Bigdata, Cloud, COBOL, Credit Cards, Credit Cards Domain, Data Warehousing & Tools, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, Hadoop, IDMS, IMDB/DC, IMS DC, ISPF, JCL, Mainframe, Python, QMF, Quiz, SAS, Self-development, SQL, Srinimf Jobs, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS Tagged: Cashback, Credit Cards Cashback, Credit Cards Domain, Mainframe, Projects

    Top Data virtualization Techniques for BI projects (1 of 5)

    $
    0
    0

     VMWARE+JOBS+Career+Apply+TodayThe term data virtualization is based on the word virtualization. Virtualization is not a new concept in the IT industry. Probably the first application of virtualization was in the 1960s when IBM used this concept to split mainframes into separate virtual machines, which made it possible for one machine to run multiple applications concurrently. Also in the 1960s, virtual memory was introduced using a technique called paging.

    30+High+paying+Software+jobs

    Memory virtualization was used to simulate more memory than was physically available in a machine. Nowadays, almost everything can be virtualized, including processors, storage , networks, data centers, and operating systems. VMWare and Cloud can also be regarded as virtualization technologies.

    In general, virtualization means that applications can use a resource without any concern for where it resides, what the technical interface is, how it has been implemented, which platform it uses, and how much of it is available. A virtualization solution encapsulates the resource in such a way that all those technical details become hidden and the application can work with a simpler interface.

    This API was a layer of software that would hide the user interface technology in use for the rest of the application. Without knowing it.


    Filed under: Analytics, Bangalore IT Jobs, Big Data, Bigdata, Cloud, COBOL, Data Warehousing & Tools, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, Hadoop, IDMS, IMDB/DC, IMS DC, ISPF, JCL, Mainframe, Mobile Apps, MQSeries, Oracle, PL/I, PL/SQL, Project Manager, Python, QMF, SAS, Self-development, SQL, Srinimf Jobs, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: Business intelligence, Mainframe, Virtualization in Data warehousing, Virtualization Techniques

    JCL- ICETOOL to Copy a data set to multiple data sets

    $
    0
    0

    The below ICETOOL example gives new thoughts on copying single data set  to multi DFSORT-HIT+ OVERLAY Best examples data sets. You can write JCL in Mainframe as below for this. Maximum output data sets limit is 10.

    //EXAMP JOB …

    //TOOL EXEC PGM=ICETOOL

    //TOOLMSG DD SYSOUT=A

    //DFSMSG DD SYSOUT=A

    //TOOLIN DD *

    COPY FROM(N) TO(DASD,PRINT,TAPE) => Copy to multiple data sets ..

    COUNT FROM(IN2) => Counts number of records in N2 …

    SORT FROM(IN1) TO(OUT1) USING(CTL1) ==> Sort input data set to a output data set with DFSORT control statement in “CTL1” …

    SPLICE FROM(CONCT) TO(COMBINE) ON(11,5,CH) WITH(41,2) ==> Specified fields from two or more records can be combined to create an output record. The fields to be spliced can originate from records in different data sets, so various “join” and “match” operations can be performed. Example: for ON fields that occur more than once (i.e., duplicate ON field values) in the CONCT data set, splices the WITH field from the last duplicate record into the first duplicate record. …

    UNIQUE FROM(OUT1) ON(3,2,PD) ==>prints a message in TOOLMSG containing the count of unique values for a specified numeric or character field. Example: print the count of unique values in the OUT1 data set ON field. ….

    VERIFY FROM(IN2) ON(1,2,ZD) ON(41,6,PD)  ==> identify all values in the two IN2 data set decimal ON fields that have invalid digits (A-F) and/or invalid signs (-9).

    Notes: You can combine ICETOOL with DFSORT control cards as above.


    Filed under: DFSORT, ICETOOL, JCL, Mainframe Tagged: Best ICETOOL Examples, DFSORT Examples, JCL Coding for ICETOOL, Mainframe

    Mainframe: How SORTWKxx datasets increases sort performance in JCL

    $
    0
    0

    DFSORT Master for best examples

    [DFSORT Master for best examples]

    The use of more work data sets increases the maximum amount of data DFSORT can process in a single sort application.
    • Any valid ddname of the form SORTWKdd or SORTWKd can now be used for DASD work data sets (for example, SORTWK01, SORTWKC3, SORTWK2, SORTWK#5, SORTWKA, SORTWKXY and so on).

    Limit of number of input datasets for sort JCL

    The upper limit for the number of input data sets that can be specified and used for a Blockset merge application has been raised from 16 to 100. The use of more merge input data sets increases the maximum amount of data DFSORT can process in a single merge application.

    Maximum limit for work datasets in DFSORT JCL

    The maximum limit is 255


    Filed under: DFSORT, File Aid, JCL, Mainframe, Srinimf Jobs Tagged: DFSORT, input data sets, input datasets, JCL for DFSORT, Mainframe, Mainframe JCL for SORT card, sort application, Sort work datasets in DFSORT

    Top featutures of DB2 REPAIR Utility

    $
    0
    0

    DB2-DBA Jobs and Career options

    [DB2-DBA Jobs and Career options]

    The REPAIR utility repairs or fixes data in tables and their related data structures. The data can be of any type, such as data contained in a table or data that is generally not accessed, such as map pages and index entries.

    The options of the REPAIR utility are:
    REPAIR DBD: Tests Database Descriptors (DBDs) that point to corresponding data items in the DB2 catalog database.
    REPAIR SET: Resets pending flags that are no longer necessary.
    REPAIR LOCATE: Changes the data at specified locations of a dataset. The result of a REPAIR utility usually contains the altered page or pages in the specified DB2 table or index and a dump of the contents.

    The REPAIR utility with the Log YES option can be used to ensure that all changes made are logged and recovered. The REPAIR utility should be carefully used because it substitutes the existing data with new data.

    JCL sysin card for REPAIR utility.

    //SYSIN DD *
    REPAIR OBJECT
    LOCATE TABLESPACE DSN9D41A.DSN9S41D PAGE X’05’
    VERIFY OFFSET 50 DATA X’A00′
    REPLACE OFFSET 50 DATA X’D11′
    DUMP OFFSET 50 LENGTH 4
    //*
    The above REPAIR statement alters the data on the fifth page at offset 50 from its initial value X‘A00’ to X‘D11’. The utility statement first checks whether or not the location matches the value X’A00’ and then modifies the data by replacing it with the new data specified. The four characters are dumped to ensure that the changes made are correct.


    Filed under: Analytics, COBOL, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Mainframe, Mobile Apps, PL/SQL, QMF, ZOS Tagged: DB2 REPAIR Utility, Mainframe, REPAIR Utility with Log YES option

    .NET for Mainframe Programmers- Best book

    $
    0
    0

    [Best book to learn .NET for Mainframe Programmers]

    [Best book to learn .NET for Mainframe Programmers]

    The important points in the .NET are as follows:
    • Programming language choice
    • Programming language support
    • Development environment
    • Collection of class libraries
    • Virtual machine and runtime
    • Object-oriented technology

    Different .NET compilers are available:

    Visual Basic .NET
    Visual C# (pronounced “C sharp”) .NET
    Visual J# (pronounced “J sharp”) .NET
    Visual C++ .NET

    .NET compiler for COBOL is ==> NetCOBOL for .NET

    How .NET development Environment would be:

    In the mainframe world, you were accustomed to having an actual environment in which to develop your software. One mainframe tool comes to mind: Interactive System Programming Facility (ISPF). Some of you may have had the misfortune of working in mainframe environments where other products were in use—competing products that looked like and worked like ISPF (sort of). At any rate, you had a development environment. In this mainframe environment, you had an editor. Additionally, you had the ability to construct and compile in ISPF.
    Whether you were doing batch programming or online programming, you typically did (almost) everything within this same environment. There were some exceptions—times when you left ISPF for certain tasks. Nevertheless, for the most part you leveraged the submenus on ISPF for your development needs. In that sense, you can say that ISPF (and products like it) represented an “integrated development environment.”
    Well, you guessed it, there is an integrated development environment (IDE) in the world of .NET. Microsoft has a product called Visual Studio .NET (VS .NET). In short, it is an awesome tool. In this IDE, you design, edit, compile, and test your programs. As in the case of the mainframe, there are times when you will work outside of VS .NET. Over time, vendors will attempt to create competing development environments. Only time will tell which one will rise to become the preferred IDE. For now, Microsoft’s VS .NET is easily your .NET IDE of choice.

    .NET is a Collection of Libraries:

    Imagine that you’re developing a COBOL program on the mainframe. Perhaps you have a group of mainframe partitioned datasets (PDS) that make up an extensive library of copybooks, utilities, subprograms, and software routines. Let’s say that this reusable software library has been proven bulletproof, so much so that you’ve come to rely on this library and you often reuse selected PDS members.
    Now, add on top of all of this that you chose to leverage the inherent COBOL Report Writer module and internal COBOL SORT features. Obviously, your intention would be to maximize any plumbing that the COBOL compiler provided (that you may have a need for) and maximize any reuse opportunity that the reusable software library offered.
    Well, with this mainframe analogy I have just about described the functionality of Microsoft’s .NET Framework. However, to really be fair, I would have to take this imaginary reusable library and multiply it by a factor of 4,000.

    The .NET Framework contains several thousand reusable software pieces. Regardless of the .NET language that you happen to use, the full .NET Framework is available to you. The more that you leverage (reuse) the .NET Framework, the better off your .NET development experience and resulting .NET application will be.

    .NET is Virtual Machine and Run time

    Suppose for a moment that I asked you to define the mainframe’s Job Entry Subsystem (also known as JES, JES2, or JES3). You might explain JES in this way: You submit your batch programs in the form of Jobs to the operating system. The operating system in turn hands your Jobs to JES for execution. JES then manages the priority execution of your Jobs. Following execution, JES handles the purging of your Jobs from the operating system. So, what does this have to do with defining .NET and answering the question “What is .NET?”
    Well, sitting on the bottom of the entire .NET world is a foundation, an engine referred to as the common language runtime (CLR). The CLR manages the fine details of what your program is doing, in much the same way that JES manages your Jobs. As JES purges your Jobs from the operating system, the CLR might purge your software objects from memory. You could say that the CLR is a micromanager of sorts. As JES is a major piece of system-level software, the CLR is an equally major piece of system-level software

    .NET is a OBJECT oriented Technology

    For the reformed mainframe programmer, moving toward the object-oriented software development model means moving away from the following software development models:[4]

    1. Structured
    2. Procedural
    3. Top-down
    4. Spaghetti

    Of course, well-seasoned developers (like us) have only developed applications using the structured development models. So, spaghetti code is a thing of the past, right?
    Wrong. Although .NET is many things, it is not a panacea. As it turns out, even object orientation will not prevent developers from writing spaghetti code. However, fully leveraging all that .NET has to offer will encourage good program design. So, as you start writing great .NET applications using the new object-oriented development methodology, remember that design/code reviews and quality assurance processes continue to offer value.

    In the world of .NET, you will be working with objects: Everything is an object. In your object-oriented program, you will create, reference, modify, and pass objects. After you understand the world of object orientation, you will prepare yourself to create maintainable, robust, and scalable applications. You will strive to create efficient code, and you will even learn not to create memory management problems in your application.

    That’s right, the concerns of memory management still exist. The concerns of managing memory will feel painfully familiar to the advanced mainframe Customer Information Control System (CICS) programmer who has worked with the GETMAIN and FREEMAIN storage commands. In addition, the phenomenon referred to as “memory leak” is familiar to some advanced CICS mainframe programmers (like yourself). The good news is that .NET has implemented a solution to help developers in the area of memory management.
    You will be introduced to this .NET-implemented feature, the garbage collector (GC). The GC will do some of what the mainframe FREEMAIN command did and more. As I mentioned earlier, in .NET everything is an object. The GC is just one aspect of what .NET offers to assist you in managing objects. Learn object orientation, and then prepare to work with .NET objects extensively.


    Filed under: Analytics, Bangalore IT Jobs, Big Data, Bigdata, CICS, Cloud, COBOL, Credit Cards, Credit Cards Domain, Data Warehousing & Tools, DB2, DB2, DB2 V11, DFSORT, Easytrieve, Easytrive, Eazytrieve, File Aid, Hadoop, ICETOOL, IDMS, IMDB/DC, IMS DC, ISPF, JCL, Mainframe, Mobile Apps, MQSeries, Oracle, Perl Scripting, PL/I, PL/SQL, Project Manager, Python, QMF, Quiz, SAS, Self-development, SQL, Srinimf Jobs, Stratus, Stratus COBOL, Teradata, UNIX, USA IT JOBS, VSAM, ZOS Tagged: .NET for Mainframe Programmers- Best book
    Viewing all 43 articles
    Browse latest View live