Previous | Contents | Index |
Although applications need not be directly concerned about Shadowing matters, certain points must be taken into consideration when implementing performance boosting optimizations:
The current state of a server can be examined as follows:
RTR> show server/full Servers: Process-id: 13340 Facility: RTR$DEFAULT_FACILITY Channel: 131073 Flags: SRV State: active Low Bound: High Bound: 87 13 rcpnam: "RTR$DEFAULT_CHANNEL" User Events: 0 RTR Events: 0 Partition-Id: 16777216 Process-id: 13340 Facility: RTR$DEFAULT_FACILITY Channel: 196610 Flags: SRV State: active Low Bound: 88 13 High Bound: 0f' rcpnam: "CHAN2" User Events: 0 RTR Events: 0 Partition-Id: 16777217 |
Figure B-2 gives an overview of the server state changes which appear in the "State:" field
Figure B-2 Server States
B.10 Client States
The current state of a client process can be examined as follows:
RTR> show client/full Clients: Process-id: 13340 Facility: RTR$DEFAULT_FACILITY Channel: 458755 Flags: CLI State: declared rcpnam: "CHAN3" User Events: 255 RTR Events: 0 |
Figure B-3 describes the client state changes which appear in the "State:" field
Figure B-3 Client States
B.11 Partition States
The current state of a key-range partition can be examined using the
SHOW PARTITION/FULL command for the
routers and the backends:
RTR> show partition/router/full Facility: RTR$DEFAULT_FACILITY State: ACTIVE Low Bound: 0 High Bound: 4294967295 Failover policy: fail_to_standby Backends: depth States: active Primary Main: depth Shadow Main: |
Backend partitions:
RTR> show partition/backend/full Partition name: RTR$DEFAULT_PARTITION_16777217 Facility: RTR$DEFAULT_FACILITY State: active Low Bound: "aaaa" High Bound: "mmmm" Active Servers: 0 Free Servers: 1 Transaction presentation: active Last Rcvy BE: Txns Active: 0 Txns Rcvrd: 0 Failover policy: fail_to_standby Key range ID: 16777217 Partition name: RTR$DEFAULT_PARTITION_16777218 Facility: RTR$DEFAULT_FACILITY State: active Low Bound: "nnnn" High Bound: "zzzz" Active Servers: 0 Free Servers: 1 Transaction presentation: active Last Rcvy BE: Txns Active: 0 Txns Rcvrd: 0 Failover policy: fail_to_standby Key range ID: 16777218 |
Figure B-4 describes the partition state changes which appear in the "State:" field
Figure B-4 Router Partition States
This appendix explains how RTR may be used with a X/OPEN Distributed Transaction Processing (DTP) conformant Resource Manager.
C.1 Introduction
The X/OPEN Distributed Transaction Processing (DTP) architecture
defines a standard interface that lets application programs share
resources provided by resource managers. The XA
interface uses the two-phase commit protocol to commit transactions,
and is a system-level bidirectional interface between the transaction
manager (TM) and the resource manager
(RM). In the RTR environment, RTR is the transaction
manager and database software such as ORACLE8 is the resource manager.
Without XA, an RTR application must deal with replayed transactions after server recovery delivered with rtr_mt_msg1_uncertain; the application has to check if the traansaction has been committed to the database. With XA, the application does not need to be concerned with this problem.
The XA library is an external interface that enables a transaction
manager to coordinate global transactions. These can include opening a
resource manager, starting a transaction, rolling back a transaction,
preparing and committing a transaction, and closing a resource manager.
With XA, RTR can connect directly to a resource manager such as ORACLE8.
C.1.1 MONITOR XA
Monitors the internal status of XA interface activities. The command displays counters containing information such as the number of XA calls, call status (success or failure), and the number of read-only transactions. Provides counts for the open, close, start, end, prepare, commit, rollback, and recovery commands.
Command Syntax: MONITOR XA
C.1.2 New Qualifier to CREATE FACILITY Command
The CREATE FACILITY command has a new qualifier that references the
defined resource manager. All resource managers that will be accessed
by a facility must be specified. All transactions to these resource
managers are recovered when the facility is created.
Command Syntax:
CREATE FACILITY facility_name /frontend=... /backend=... /router=... /resource_manager=(RM_1, RM_2) |
where:
facility_name = user-specified facility name /resource_manager = the name of those RMs this facility references
For example:
CREATE FACILITY test /front=N1 /back=N2/router=N3 /resource_manager=(employ_rm,payroll_rm) |
An application written to use RTR with XA does not need all existing
RTR application programming interface statements. In particular, there
is no longer a need to include code to handle rtr_mt_msg1_uncertain messages.
C.1.4 RTR Open Channel
RTR relies on the server application to specify which RM it is attached to using the open channel API. The server must submit an RM instance name with open string to the RTR open channel API before accessing the desired database. Both the RM instance name and the database name (RM name) contained in open string must be the same as that registered earlier using the REGISTER RM command. This information is now stored in the RTR key segment structure. A new RTR_F_OPE_XA_MANAGED flag is created to associate the channel with the XA interface. For example:
typedef struct { rtr_keyseg_type_t ks_type; [RM_NAME_TYPE] rtr_keylen_t ks_length; [N/A] rtr_keylen_t ks_offset; [N/A] rtr_pointer_t ks_lo_bound; [RM_NAME] rtr_pointer_t ks_hi_bound; [OPEN_STRING] } rtr_keyseg_t; |
RTR for Windows NT is interoperable with Microsoft's Distributed Transaction Controller (DTC). DTC is supported via the RTR XA software architecture. That is, with the X/Open XA protocol, RTR users can develop application programs to update MS SQL Server databases, MSMQ, or other Microsoft resource managers under the control of a true distributed transaction.
This is possible because RTR (as a distributed transaction manager) is able to directly communicate with MS DTC to manage a transaction or perform a recovery via the XA protocol. For each standard XA call received from RTR, MS DTC will translate it into a corresponding OLE transaction call that SQL Server or MSMQ can use to update databases.
This appendix describes the various error messages that can be returned by the RTR utility.
%RTR-F-ABKEYW, Ambiguous qualifier or keyword - supply more characters
%RTR-F-ABVERB, Ambiguous command verb - supply more characters
%RTR-E-ACCTOOBIG, ACCESS string is too long
%RTR-F-ACPINSRES, The RTR ACP has insufficient resources: details in the rtr log file
The RTR log file for contains more details of the problem.
%RTR-E-ACPNOTVIA, RTR ACP is no longer a viable entity, restart RTR
%RTR-I-ALRDYINSTATE, Partition is already in the desired state
%RTR-E-AMBIGDISP, Ambiguous monitor file name, [A]
%RTR-F-AMBROUNAM, Ambiguous API routine name for CALL - supply more characters
%RTR-F-BADDSKWRI, Unable to create/extend a journal file
%RTR-E-BADOP, Unable to complete operation @[A] line [A]
%RTR-F-BADOUTFIL, Cannot open file specified with /OUTPUT
%RTR-E-BADPRTSTATE, Disallowed attempt to make an illegal or undefined partition state transition
%RTR-E-BADRTRINS, RTR is not correctly installed
%RTR-E-BENOTALL032, Not all back-ends are at the minimum required version of V3.2
%RTR-E-CANTSTOP, RTR could not be stopped
%RTR-E-CHAALROPE, Channel [A] is already open in this window
%RTR-F-CHANOTOPE, Channel not opened
%RTR-E-CHNALRDEC, Channel [A] is already declared
%RTR-E-CHNOTACTIVE, Channel does not have active transaction running
%RTR-E-CLASSREQ, At least one data-class definition required
%RTR-E-CLOSEPEND, Send failed due to close pending on channel - call rtr_receive_message
%RTR-I-CMDIGNORE, Command ignored for defined facility role
%RTR-I-CMDNOTWRK, [A]-command not implemented
%RTR-E-CMDRESDEV, Command reserved to RTR development
%RTR-E-CMDTOOLON, Command too long
%RTR-E-CNTCRJOU, Cannot create journal directory
%RTR-S-COMARESEN, Commands sent by default to node [A]
%RTR-E-COMNOTFOU, Command not found [A], use RECALL/ALL
%RTR-E-COMNUMMUS, Command number must be between 1 and [A]
%RTR-F-CONFLICT, Illegal combination of command elements - check documentation n [A]
%RTR-I-DEQDATA, Received data ([A] bytes) [A]
%RTR-F-DFSDISK, Disk is served by DFS
%RTR-I-DISABMOD, [A] mode disabled
%RTR-S-DISITMCLR, [A] display item(s) cleared
%RTR-W-DISKALL, Disk is not available to RTR
%RTR-W-DISKMNTVER, Disk is currently under mount verification
%RTR-W-DISKMOUFOR, Disk is mounted foreign
%RTR-W-DISKNOTMOU, Disk is not mounted
%RTR-W-DISKSSM, Disk is member of shadow set
%RTR-W-DISKSWL, Disk is software write locked
%RTR-E-DSKNOTSET, Specified disk not part of the journal disk set
%RTR-E-DTXNOSUCHRM, There is no such RM registered
%RTR-W-DTXREADONLY, The transaction branch was read only and has been committed
%RTR-E-DTXRMBUSY, DTX RM is still in use by RTR
%RTR-E-DTXRMEXISTS, The DTX RM has already been registered
%RTR-E-DTXTOOMANYRMS, Too many RMs or instances of an RM have been registered
%RTR-F-DUPJOUFIL, Duplicate RTR journal file found - remove duplicate file or CREATE JOURNAL /SUPERSEDE
Probable cause:
System management error. A user has copied a journal file, or a disk containing a journal file. RTR can now see both the original and the copy and does not know which to use.
Corrective action, either:
(a) Check the log for the relevant filenames, and delete or move the duplicate journal file, or
(b) Reissue the CREATE JOURNAL /SUPERSEDE command (in this case any recovery information in the old journal is lost).
%RTR-E-DUPLPARTNAME, Duplicate partition name
%RTR-E-DUPLRMNAME, Duplicate rm partition name
%RTR-E-DUPNODNAM, Duplicate node name, [A]
%RTR-E-EMPTYREQ, Request_info list is empty ...
%RTR-I-ENABMOD, [A] mode enabled
%RTR-E-ENODNANAM, DECnet definition required, but not found for node [A]
%RTR-E-ENOIPNAM, IP definition required, but no host definition found for [A]
%RTR-F-ENOTRANSPORTS, No network transports available
%RTR-F-ERRACCDIR, Directory [A], cannot be accessed or opened
%RTR-E-ERRACCFIL, Error accessing file [A]
%RTR-E-ERRACCMBX, Error accessing mailbox
%RTR-E-ERRACCNOD, Error accessing node [A]
%RTR-E-ERRACCTAB, Error accessing tables
%RTR-E-ERRCREMBX, Error creating mailbox
%RTR-E-ERRDELMBX, Error deleting mailbox
%RTR-E-ERRGETNOD, Error obtaining information for node [A]
%RTR-E-ERRINIACS, Unable to initialize tables
%RTR-F-ERRJOUNAM, Error in journal file name - CREATE JOURNAL /SUPERSEDE and submit SPR
Reissue the RTR CREATE JOURNAL command before restarting RTR.
%RTR-E-ERROPEFIL, Error opening file [A]
%RTR-F-ERROPEJOU, Error opening journal file, stv: [A]
%RTR-E-ERRSTAACP, Unable to start ACP
%RTR-E-ERRSTARCH, Unable to start remote client handler
%RTR-E-EVTNAMILL, Unknown event name, [A]
%RTR-E-EXPSYNILL, Expression has illegal syntax, [A] expected n/[A]/
%RTR-E-EXPTOOCOM, Expression too complex n[A]
%RTR-S-FACADDED, Facility [A] added
%RTR-E-FACALREXI, Facility already exists, [A]
%RTR-S-FACCREATED, Facility [A] created
%RTR-S-FACDELETE, Facility [A] deleted
%RTR-S-FACEXTENDED, Facility [A] extended
%RTR-E-FACNAMBLA, Facility name is blank
%RTR-E-FACNAMILL, Facility name [A] contains illegal character "[A]"
%RTR-E-FACNAMLON, Facility name [A] is longer than 30 characters
%RTR-E-FACNAMSTA, Facility name [A] does not start with a letter
%RTR-E-FACTABFUL, The FAC table is full
%RTR-S-FACTRIMMED, Facility [A] trimmed
%RTR-E-FDBTABFUL, The FDB table is full
%RTR-E-FENAMELONG, Frontend name string length greater than RTR_MAX_FE_NAM_LEN
%RTR-E-FLDNFND, Field [A] not found
%RTR-I-FORCEDEXI, Forcing RTR application exit, process [A], PID [A]
%RTR-F-FUNCNOTSUP, Function not supported
%RTR-I-GRPMODCHG, Group changed from [A] to [A]
%RTR-I-HIGBNDHEX, High bound is [A] (hex)
%RTR-E-HLBNCPTBL, Format of help library [A] is unknown
%RTR-I-HLPNOTFND, No help available (help file [A] not found)
%RTR-E-ILLDEVTYP, Device [A] is unsuitable for journals
%RTR-E-ILLPARTCHAR, Legal characters are alphanumeric and under-score
%RTR-E-ILLREMDEV, Device [A] contains a node specification
%RTR-E-INSUFPRIV, Insufficient privileges to run RTR
%RTR-F-INSVIRMEM, Insufficient virtual memory
%RTR-F-INVCHANAM, Invalid chanam argument
%RTR-F-INVCHANNEL, Invalid channel argument
%RTR-F-INVDEVNAM, Invalid device name length
%RTR-F-INVDSDEF, Msglen not consistent with len derived from msgfmt
%RTR-F-INVEVTNUM, Invalid evtnum argument
%RTR-F-INVEVTRAN, Invalid evtnum range
%RTR-E-INVFILNAM, Invalid file name, [A]
%RTR-F-INVFL4CLI, Invalid flag for client channel
%RTR-F-INVFL4SRV, Invalid flag for server channel
%RTR-F-INVFLAGS, Invalid flags argument
%RTR-F-INVJOINTXID, Invalid join transaction argument
%RTR-F-INVKSLENGTH, Invalid ks_length argument
%RTR-F-INVKSTYPE, Invalid ks_type argument
%RTR-F-INVMSGFMT, Invalid format argument
Previous | Next | Contents | Index |