public class Task extends API implements RetrieveBits
This class provides a set of methods and variables that correspond to a CICS task.
com.ibm.cics.server.API
for general restrictions on using the JCICS API.
Modifier and Type | Field and Description |
---|---|
java.io.PrintWriter |
err
A PrintWriter which is directed at the user's terminal, if the
Principal Facility is a terminal, or to System.err if it is not.
|
static byte |
FCI_START_NO_DATA
Constant - FCI_START_NO_DATA
|
static byte |
FCI_START_WITH_DATA
Constant - FCI_START_WITH_DATA
|
static byte |
FCI_TASK_WITH_FACILITY
Constant - FCI_TASK_WITH_FACILITY
|
static byte |
FCI_TRIGGERED_NO_FACILITY
Constant - FCI_TRIGGERED_NO_FACILITY
|
static java.io.PrintWriter |
fixedErrForJVMLifetime
STDERR
|
static java.io.PrintWriter |
fixedOutForJVMLifetime
STDOUT
|
java.io.PrintWriter |
out
A PrintWriter which is directed at the user's terminal, if the
Principal Facility is a terminal, or to System.out if it is not.
|
DATA, NUMBER_OF_BITS, QUEUE, RTERMID, RTRANSID
Modifier and Type | Method and Description |
---|---|
void |
abend()
Request a normal ABEND of the task with no ABEND code and no dump.
|
void |
abend(java.lang.String abcode)
Request a normal ABEND of the task with specific ABEND code.
|
void |
abend(java.lang.String abcode,
boolean dump)
Request a normal ABEND of the task with specific ABEND code and
optional dump.
|
void |
commit()
Commit the work done as part of the task.
|
ContainerIterator |
containerIterator()
Create a ContainerIterator for the current Channel.
|
Channel |
createChannel(java.lang.String channelName)
Create a Channel to hold the default number (16) of Containers.
|
Channel |
createChannel(java.lang.String channelName,
int listSize)
Create a Channel with room for a specific number of Containers.
|
void |
disableTaskTrace()
Deprecated.
in 4.2
|
void |
enableTaskTrace()
Deprecated.
in 4.2
|
void |
forceAbend()
Force the task to ABEND with no ABEND code and no dump.
|
void |
forceAbend(java.lang.String abcode)
Force the task to ABEND with a specific ABEND code and a dump.
|
void |
forceAbend(java.lang.String abcode,
boolean dump)
Force the task to ABEND with a specific ABEND code and optional dump.
|
ApplicationContext |
getApplicationContext()
Return the Application Context.
|
Channel |
getChannel(java.lang.String channelName)
Return the named Channel object if it matches the current channel's name
or has been created through the JCICS API by this task earlier at this Link level.
|
Channel |
getCurrentChannel()
Return the current Channel, if any.
|
boolean |
getDB2SQLJJDBCActive()
Returns whether this Task is part of a DB2 SQLJ JDBC transaction.
|
byte |
getFCI()
Return the FCI for the task.
|
java.lang.String |
getInvokingProgramName()
Return the Invoking program name.
|
java.lang.Object |
getPrincipalFacility()
Return the principal facility for the current task.
|
java.lang.String |
getProgramName() |
java.lang.String |
getQNAME()
Return the QNAME for the task.
|
java.lang.String |
getSTARTCODE()
Return the STARTCODE for the task.
|
static Task |
getTask()
Return the
Task object representing the task as part of
which the current thread is executing. |
int |
getTaskNumber()
Return the task number.
|
java.lang.Integer |
getTaskNumberInteger()
Return the task number as an Integer.
|
java.lang.Thread |
getTaskThread()
Return the thread for the current task
|
java.lang.String |
getThreadName()
Get the name of the Java thread in the JVM server that corresponds to this Task
If the task has a current program this will be:
program_name.TASKtask_number.transaction_name
otherwise it will be
TASKtask_number.transaction_name
|
Channel |
getTransactionChannel()
Return the transaction Channel, if any.
|
java.lang.String |
getTransactionName()
Return the transaction name.
|
void |
getTWA(TWAHolder holder)
Return a copy of the Task Work Area (TWA).
|
java.lang.String |
getUSERID()
Return the USERID that is signed on to the task's principal facility.
|
void |
retrieve(java.util.BitSet whatToRetrieve,
RetrievedDataHolder holder)
Retrieve any data specified when this task was started.
|
void |
rollback()
Roll back the work done as part of the task.
|
void |
setDB2SQLJJDBCActive(boolean active)
Set/Reset the flag indicating that this Task is part of
a DB2 SQLJ JDBC transaction.
|
void |
setJTATranActive(boolean setJTATran)
setJTATranActive
|
void |
setTWA(byte[] data)
Update the contents of the TWA from an array of bytes.
|
public java.io.PrintWriter err
public java.io.PrintWriter out
public static java.io.PrintWriter fixedOutForJVMLifetime
public static java.io.PrintWriter fixedErrForJVMLifetime
public static final byte FCI_START_NO_DATA
public static final byte FCI_TASK_WITH_FACILITY
public static final byte FCI_TRIGGERED_NO_FACILITY
public static final byte FCI_START_WITH_DATA
public void abend(java.lang.String abcode)
abcode
- the ABEND codepublic java.lang.Thread getTaskThread()
Thread
containing the thread.public void setDB2SQLJJDBCActive(boolean active)
active
- , boolean set/resetpublic boolean getDB2SQLJJDBCActive()
public void abend(java.lang.String abcode, boolean dump)
abcode
- the ABEND codedump
- false if NODUMP is required, else truejava.lang.IllegalArgumentException
- if abcode is nullpublic void abend()
public void commit() throws InvalidRequestException, RolledBackException
InvalidRequestException
- The program issuing the commit
request is a remotely-linked-to program and SYNCONRETURN was not
specified, or a JTA Transaction is active.RolledBackException
- The commit request could not be
successfully completed and the current LUW has been rolled back.@Deprecated public void disableTaskTrace()
@Deprecated public void enableTaskTrace()
public void forceAbend(java.lang.String abcode)
abcode
- the ABEND codepublic void forceAbend(java.lang.String abcode, boolean dump)
abcode
- the ABEND codedump
- false if NODUMP is required, else truepublic void forceAbend()
public byte getFCI()
byte
containing the FCI.public java.lang.Object getPrincipalFacility()
null
if there is no principal facility associated with the task).
Note that it is a simple object reference which is returned. To decide
if the principal facility is a terminal or a conversation, it is
necessary to use the instanceof
operator to test if the
object reference returned is an instance of a Terminal or of a
Conversation.public java.lang.String getQNAME()
String
containing the QNAME.public java.lang.String getSTARTCODE()
String
containing the STARTCODE.public Channel getTransactionChannel()
public Channel getCurrentChannel()
public Channel createChannel(java.lang.String channelName) throws ChannelErrorException
channelName
- the name of the new ChannelChannelErrorException
- CHANNELERRpublic Channel createChannel(java.lang.String channelName, int listSize) throws ChannelErrorException
channelName
- the name of the new ChannellistSize
- the initial number of ContainersChannelErrorException
- CHANNELERRpublic Channel getChannel(java.lang.String channelName)
channelName
- the name of the Channel to be returned; must not be null.public ContainerIterator containerIterator()
public static Task getTask()
Task
object representing the task as part of
which the current thread is executing.Task
object.public int getTaskNumber()
int
containing the task number.public java.lang.Integer getTaskNumberInteger()
Integer
containing the task number.public java.lang.String getTransactionName()
String
containing the transaction name.public void getTWA(TWAHolder holder)
The corresponding setTWA(byte[]) method must be called before returning from the task or invoking another program, as the Java TWA is a copy of the "real" TWA and any changes made in Java code must be reflected back into the "real" TWA before another program is invoked which would not see the current program's copy of the TWA.
holder
- a holder for the TWA.
If there is no TWA
defined for the transaction, a byte[] of length 0 is returned as the value of
the holder.public java.lang.String getUSERID() throws InvalidRequestException
byte
containing the USERID.InvalidRequestException
- an INVREQ condition occurredpublic java.lang.String getProgramName()
String containing the program name.
-
getInvokingProgramName
public java.lang.String getInvokingProgramName()
Return the Invoking program name.
- Returns:
- a
String
containing the invoking program. - Since CICS TS version:
- ts 5.3
-
getApplicationContext
public ApplicationContext getApplicationContext()
throws InvalidRequestException
Return the Application Context. This method is new in CICS TS 5.2.
- Returns:
- a
ApplicationContext
containing the current
application context for this transaction.
- Throws:
InvalidRequestException
- an INVREQ condition occurred- Since CICS TS version:
- 5.2
- Since package version:
- 1.501
-
retrieve
public void retrieve(java.util.BitSet whatToRetrieve,
RetrievedDataHolder holder)
throws EndOfDataException,
InvalidRequestException,
InvalidRetrieveOptionException,
IOErrorException,
LengthErrorException,
RecordNotFoundException
Retrieve any data specified when this task was started.
- Parameters:
whatToRetrieve
- the RetrieveBits interface provides a set of constants
that should be used to construct this java.util.BitSet
holder
- for the RetrievedData
- Throws:
EndOfDataException
- a ENDDATA condition occurred
InvalidRequestException
- an INVREQ condition occurred
InvalidRetrieveOptionException
- a ENVDEFERR condition occurred
IOErrorException
- an IOERR condition occurred
LengthErrorException
- a LENGERR condition occurred
RecordNotFoundException
- a NOTFND condition occurred- Since CICS TS version:
- 1.3
- Since package version:
- 1.0
-
rollback
public void rollback()
throws InvalidRequestException
Roll back the work done as part of the task.
- Throws:
InvalidRequestException
- The program issuing the commit
request is a remotely-linked-to program and SYNCONRETURN was not
specified or a JTA UserTransaction is active.- Since CICS TS version:
- 1.3
- Since package version:
- 1.0
-
setTWA
public void setTWA(byte[] data)
throws InvalidRequestException
Update the contents of the TWA from an array of bytes.
This method must be called before returning from the task or invoking
another program,
as the Java TWA is a copy of the "real" TWA and any changes made
in Java code must be reflected back into the "real" TWA before another
program is invoked which would not see the current program's copy of
the TWA.
- Parameters:
data
- the new data to be copied into the TWA.
- Throws:
InvalidRequestException
- the task does not have a TWA- Since CICS TS version:
- 1.3
- Since package version:
- 1.0
-
setJTATranActive
public void setJTATranActive(boolean setJTATran)
setJTATranActive
This method is used to indicate that a JTA UserTransaction has been
started or ended. When a JTA UserTransaction is active, the DTC
Task.commit() and Task.rollback() methods cannot be used.
Customers are not recommended to set this themselves.
- Parameters:
setJTATran
- true or false- Since CICS TS version:
- 5.2
-
getThreadName
public java.lang.String getThreadName()
Get the name of the Java thread in the JVM server that corresponds to this Task
If the task has a current program this will be:
program_name.TASKtask_number.transaction_name
otherwise it will be
TASKtask_number.transaction_name
- Returns:
- the thread name