363 lines
21 KiB
HTML
363 lines
21 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html
|
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html lang="en-us" xml:lang="en-us">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="security" content="public" />
|
|
<meta name="Robots" content="index,follow" />
|
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|
<meta name="DC.Type" content="task" />
|
|
<meta name="DC.Title" content="Example: Manage tape resources" />
|
|
<meta name="abstract" content="This topic provides an example of how to manage tape resources." />
|
|
<meta name="description" content="This topic provides an example of how to manage tape resources." />
|
|
<meta name="DC.Relation" scheme="URI" content="rzam4tape.htm" />
|
|
<meta name="DC.Relation" scheme="URI" content="../cl/wrkmlbsts.htm" />
|
|
<meta name="DC.Relation" scheme="URI" content="../books/sc415345.pdf" />
|
|
<meta name="copyright" content="(C) Copyright IBM Corporation 2004, 2006" />
|
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2004, 2006" />
|
|
<meta name="DC.Format" content="XHTML" />
|
|
<meta name="DC.Identifier" content="rzam4scenario" />
|
|
<meta name="DC.Language" content="en-us" />
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
|
<title>Example: Manage tape resources</title>
|
|
</head>
|
|
<body id="rzam4scenario"><a name="rzam4scenario"><!-- --></a>
|
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|
<h1 class="topictitle1">Example: Manage tape resources</h1>
|
|
<div><p>This topic provides an example of how to manage tape resources.</p>
|
|
<div class="section"><p>Each system in the following example reports two tape subsystems,
|
|
or resources. These tape resources are connected to the tape library resource.
|
|
In this example, the tape library resource is the 3494 Data Server. The 3494
|
|
Data Server then generates an automatic configuration of a device description
|
|
for a media library device (MLD) . In this situation, any request to the tape
|
|
library device (the 3494 Data Server) results in the tape library resource
|
|
manager allocating which tape resource to use. This simplifies tape management
|
|
tasks for most users because the system is responsible for the majority of
|
|
those tasks.</p>
|
|
<div class="note"><span class="notetitle">Note:</span> Users with multiple systems and limited attachment capabilities
|
|
might still need to force the use of specific resources.</div>
|
|
<p>The Work
|
|
with Media Library Status (WRKMBLSTS) command allows you to view the tape
|
|
libraries and associated tape resources from a configuration standpoint. Using
|
|
this command on each of the three systems in the example results in the following
|
|
displays:</p>
|
|
<div class="fignone"><span class="figcap">Figure 1. View of tape library TAPMLB01 from System A</span><br /><img src="rzam4001.gif" alt="View of tape library TAPMLB01 from System A. The system recognizes both TAPE01 and TAPE02. They are in an UNPROTECTED state." /><br /></div>
|
|
<div class="fignone"><span class="figcap">Figure 2. View of tape library TAPMLB01 from System A</span><br /><img src="rzam4001.gif" alt="View of tape library TAPMLB01 from System A. The system recognizes both TAPE01 and TAPE02. They are in an UNPROTECTED state." /><br /></div>
|
|
<div class="fignone"><span class="figcap">Figure 3. View of tape library TAPMLB01 from System A</span><br /><img src="rzam4001.gif" alt="View of tape library TAPMLB01 from System A. The system recognizes both TAPE01 and TAPE02. They are in an UNPROTECTED state." /><br /></div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzam4tape.htm" title="This topic describes the advantages and limitations of using tape for storage. It makes some recommendations about when tape is a good choice and when you should consider other media. It also provides planning, setup, management, and troubleshooting information for stand-alone tape devices and tape libraries.">Tape</a></div>
|
|
</div>
|
|
<div class="relref"><strong>Related reference</strong><br />
|
|
<div><a href="../cl/wrkmlbsts.htm">Work with Media Library Status (WRKMBLSTS)</a></div>
|
|
</div>
|
|
<div class="relinfo"><strong>Related information</strong><br />
|
|
<div><a href="../books/sc415345.pdf" target="_blank">Backup Recovery and Media Services for iSeries</a></div>
|
|
</div>
|
|
</div><div class="nested1" xml:lang="en-us" id="viewtapelibtapmlb01sysb"><a name="viewtapelibtapmlb01sysb"><!-- --></a><h2 class="topictitle2">View of tape library TAPMLB01 from System B</h2>
|
|
<div><div class="section"><br /><img src="rzam4002.gif" alt="View of tape library TAPMLB01 from System B. The system only recognizes TAPE01. TAPE01 is in an UNPROTECTED state." /><br /></div>
|
|
</div>
|
|
</div>
|
|
<div class="nested1" xml:lang="en-us" id="viewtapelibtapmlb01sysc"><a name="viewtapelibtapmlb01sysc"><!-- --></a><h2 class="topictitle2">View of tape library TAPMLB01 from System C</h2>
|
|
<div><div class="section"><br /><img src="rzam4003.gif" alt="View of tape library TAPMLB01 from System C. The systm only recognizes TAPE02. TAPE02 is in an UNPROTECTED state." /><br /><p>There are three possible
|
|
values for the allocation of each resource. Each value assumes that the tape
|
|
library is varied on. The values are:</p>
|
|
<dl><dt class="dlterm">ALLOCATED</dt>
|
|
<dd>An allocated resource is assigned to a particular system and no other
|
|
system can access it. The allocated state is analogous to a stand-alone device
|
|
that is varied on with the value ASSIGN(*YES).)</dd>
|
|
<dt class="dlterm">UNPROTECTED</dt>
|
|
<dd>An unprotected tape resource is not assigned to a particular system and
|
|
is available to respond to requests to its tape library device. This unprotected
|
|
state is analogous to a stand-alone device that is varied on with the value
|
|
ASSIGN(*NO). If a request is made to the tape library device and the tape
|
|
resource is selected by the tape library device resource manager, the tape
|
|
resource is assigned while it is being used.</dd>
|
|
<dt class="dlterm">DEALLOCATED</dt>
|
|
<dd>A deallocated tape resource is not assigned to a particular system and
|
|
is unavailable to respond to requests to its tape library device. If the tape
|
|
library is varied off, all of its tape resources are deallocated. The deallocated
|
|
state allows the use of a tape resource in stand-alone mode. It also allows
|
|
temporary use of a tape resource if a malfunction occurs with the robotic
|
|
components of the tape library.</dd>
|
|
</dl>
|
|
<p>When a tape resource that is shared between systems is not
|
|
in use, it should remain in an unprotected state with the tape library device
|
|
varied on. If the tape resource is left in an allocated or deallocated state,
|
|
a command request to use the resource might result in an error stating that
|
|
no resources are available.</p>
|
|
<p>If you are using backup and recovery media
|
|
services (BRMS), you should not use SHARED *YES for media libraries. Use UNPROTECTED
|
|
to share your resources. You can also use a combination of UNPROTECTED and
|
|
ALLOCATED on the network to ensure that each system has the correct device
|
|
that is required for backup operations. Leave the tape libraries varied on
|
|
at all times, and use the allocation status to control use.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="nested1" xml:lang="en-us" id="forceusespecificresources"><a name="forceusespecificresources"><!-- --></a><h2 class="topictitle2">Force use of specific resources</h2>
|
|
<div><div class="section"><p>One problem to consider in the example is the problem of cable
|
|
limitations. One system can potentially prevent another from accessing tape
|
|
resources even when one is available. The difference is in how a user can
|
|
force a system to use a specific resource. The ways to force a system to use
|
|
a specific resource are:</p>
|
|
<ul><li><a href="#schedule">Schedule jobs based on time</a></li>
|
|
<li><a href="#allocated">Use the resource selection sequence</a> </li>
|
|
<li><a href="#multiple">Use multiple tape library device descriptions</a> </li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="nested1" xml:lang="en-us" id="schedule"><a name="schedule"><!-- --></a><h2 class="topictitle2">Schedule jobs based on time</h2>
|
|
<div><div class="section"><p>One method of resolving this problem is to manipulate the start
|
|
times of save operations on each system. In the example, system A and system
|
|
B are contending for tape resource TAP01. Start the save operation on system
|
|
B to ensure that system B has access to a tape resource.</p>
|
|
<p>The following
|
|
table shows how the strategy chart appears if this method is used in the example.</p>
|
|
|
|
<div class="tablenoborder"><a name="schedule__schtimeman"><!-- --></a><table cellpadding="4" cellspacing="0" summary="" id="schedule__schtimeman" frame="border" border="1" rules="all"><caption>Table 1. Schedule to meet system and device constraints using
|
|
time management</caption><thead align="left"><tr><th valign="top" id="d0e122">Start time</th>
|
|
<th valign="top" id="d0e124">Approximate complete time</th>
|
|
<th valign="top" id="d0e126">Backup group</th>
|
|
<th valign="top" id="d0e128">System</th>
|
|
<th valign="top" id="d0e130">Device</th>
|
|
<th valign="top" id="d0e132">Tape resource forced</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr><td valign="top" headers="d0e122 ">10:05 p.m.</td>
|
|
<td valign="top" headers="d0e124 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e126 ">2</td>
|
|
<td valign="top" headers="d0e128 ">A</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP01 (TAP02 is busy on system C)</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e122 ">10:00 p.m.</td>
|
|
<td valign="top" headers="d0e124 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e126 ">5</td>
|
|
<td valign="top" headers="d0e128 ">C</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e122 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e124 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e126 ">6</td>
|
|
<td valign="top" headers="d0e128 ">C</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e122 ">1:05 a.m.</td>
|
|
<td valign="top" headers="d0e124 ">6:00 a.m.</td>
|
|
<td valign="top" headers="d0e126 ">1</td>
|
|
<td valign="top" headers="d0e128 ">A</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP02 (TAP01 is busy on system B)</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e122 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e124 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e126 ">3</td>
|
|
<td valign="top" headers="d0e128 ">B</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP01</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e122 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e124 ">:00 a.m.</td>
|
|
<td valign="top" headers="d0e126 ">4</td>
|
|
<td valign="top" headers="d0e128 ">B</td>
|
|
<td valign="top" headers="d0e130 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e132 ">TAP01</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="nested1" xml:lang="en-us" id="allocated"><a name="allocated"><!-- --></a><h2 class="topictitle2">Use the resource selection sequence</h2>
|
|
<div><div class="section"><p>Because ALLOCATED resources are selected for use before UNPROTECTED
|
|
resources, you can use this aspect to your advantage. A user exit (the *EXIT
|
|
special value) is a user-defined CL command that permits automatic processing
|
|
of predefined user routines. On system A in the example, you can use the *EXIT
|
|
special value in the BRMS control group to change TAP02 from UNPROTECTED to
|
|
ALLOCATED. The next save request then attempts to access TAP02 first. When
|
|
the save operation is completed, you use the *EXIT special value at the end
|
|
of the control group to change the resource back from ALLOCATED to UNPROTECTED.
|
|
For more information about the *EXIT special value, see Backup Recovery and
|
|
Media Services for iSeries™.</p>
|
|
<p>In order to accomplish this in the
|
|
example, keep all the resources in UNPROTECTED status and change two backup
|
|
groups. In this situation, you are only concerned about systems that are attached
|
|
to more than one resource. Only systems that are attached to more than one
|
|
resource can produce a resource access conflict. In this example, the system
|
|
that is attached to more than one resource is System A, in <a href="#schedule__schtimeman">Table 1</a>. System A belongs to backup group 1 and backup group
|
|
2.</p>
|
|
</div>
|
|
<ol><li><span>Change Save backup group 2:</span><ol type="a"><li class="substepexpand"><span>Change TAP01 from *UNPROTECTED to *ALLOCATED by specify the
|
|
following command for the *EXIT special value:</span> <pre> VRYCFG CFGOBJ(TAPMLB01) CFGTYPE(*MLBRSC) STATUS(*ALLOCATE) RSRCNAME(TAP01)</pre>
|
|
</li>
|
|
<li class="substepexpand"><span>Perform the save operation.</span></li>
|
|
<li class="substepexpand"><span>Change TAP01 from *ALLOCATED to *UNPROTECTED by specifying the
|
|
following command for the *EXIT special value:</span> <pre>VRYCFG CFGOBJ(TAPMLB01) CFGTYPE(*MLBRSC) STATUS(*UNPROTECTED) RSRCNAME(TAP01)</pre>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
<li><span>Change Save backup group 1:</span><ol type="a"><li class="substepexpand"><span>Change TAP02 from *UNPROTECTED to *ALLOCATED by specifying the
|
|
following command for the *EXIT special value:</span> <pre> VRYCFG CFGOBJ(TAPMLB01) CFGTYPE(*MLBRSC) STATUS(*ALLOCATE) RSRCNAME(TAP02)</pre>
|
|
</li>
|
|
<li class="substepexpand"><span>Perform the save operation.</span></li>
|
|
<li class="substepexpand"><span>Change TAP02 from *ALLOCATED to *UNPROTECTED by specifying the
|
|
following command for the *EXIT special value:</span> <pre>VRYCFG CFGOBJ(TAPMLB01) CFGTYPE(*MLBRSC) STATUS(*UNPROTECTED) RSRCNAME(TAP02)</pre>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ol>
|
|
<div class="section"><p>The following table shows how the strategy table appears if this
|
|
method is used in the example.</p>
|
|
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption>Table 2. Schedule to meet system and
|
|
device constraints using ALLOCATE before UNPROTECT</caption><thead align="left"><tr><th valign="top" id="d0e282">Start time</th>
|
|
<th valign="top" id="d0e284">Approximate complete time</th>
|
|
<th valign="top" id="d0e286">Backup group</th>
|
|
<th valign="top" id="d0e288">System</th>
|
|
<th valign="top" id="d0e290">Device</th>
|
|
<th valign="top" id="d0e292">Tape resource forced</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr><td valign="top" headers="d0e282 ">10:00 p.m.</td>
|
|
<td valign="top" headers="d0e284 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e286 ">2</td>
|
|
<td valign="top" headers="d0e288 ">A</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP01</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e282 ">10:00 p.m.</td>
|
|
<td valign="top" headers="d0e284 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e286 ">5</td>
|
|
<td valign="top" headers="d0e288 ">C</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e282 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e284 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e286 ">6</td>
|
|
<td valign="top" headers="d0e288 ">C</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e282 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e284 ">6:00 a.m.</td>
|
|
<td valign="top" headers="d0e286 ">1</td>
|
|
<td valign="top" headers="d0e288 ">A</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP02 (TAP01 is busy on system B)</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e282 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e284 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e286 ">3</td>
|
|
<td valign="top" headers="d0e288 ">B</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP01</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e282 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e284 ">6:00 a.m.</td>
|
|
<td valign="top" headers="d0e286 ">4</td>
|
|
<td valign="top" headers="d0e288 ">B</td>
|
|
<td valign="top" headers="d0e290 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e292 ">TAP01</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="nested1" xml:lang="en-us" id="multiple"><a name="multiple"><!-- --></a><h2 class="topictitle2">Use multiple tape library device descriptions</h2>
|
|
<div><div class="section"><p>You can also use the multiple tape library device descriptions
|
|
that are created when a tape library is configured. As each tape resource
|
|
in a tape library reports to the iSeries server, a separate tape library
|
|
description might be created. Typically, you should use one TAPMLB <var class="varname">xx</var> and
|
|
assign all the tape resources to it. However, system A in the example differs
|
|
from this. The following display shows the configuration that is generated
|
|
on system A.</p>
|
|
<br /><img src="rzam4004.gif" alt="Both TAPMBL01 and TAPMLB02 are varied off" /><br /><p>After the command CFGDEVMLB(TAPMLB01) is completed,
|
|
you can see both resources under TAPMLB01, even though TAP02 actually generated
|
|
TAPMLB02. Both resources are set to UNPROTECTED.</p>
|
|
<br /><img src="rzam4005.gif" alt="You can see both resources under TAPMLB01, even though TAP02 actually generated TAPMLB02. Both resources are set to UNPROTECTED." /><br /><p>If you varied on TAPMLB02,
|
|
it also recognizes TAP01 and TAP02. However, because only one tape library
|
|
can use a resource, TAP01 and TAP02 must to be set to DEALLOCATED in TAPMLB02,
|
|
as is shown on the following display.</p>
|
|
<br /><img src="rzam4006.gif" alt="TAPMLB02 is varied on. It recognizes TAP01 and TAP02. Because only one tape library can use a resource, TAP01 and TAP02 must to be set to DEALLOCATED in TAPMLB02." /><br /><p>In order to use the TAPMLB02
|
|
device description, you set TAP01 to UNPROTECTED in TAPMLB01 and you set TAP02
|
|
to UNPROTECTED in TAPMLB02, as is shown in the following display.</p>
|
|
<br /><img src="rzam4007.gif" alt="TAP01 is set to UNPROTECTED in TAPMLB01 and TAP02 is set to UNPROTECTED in TAPMLB02." /><br /><p>The following table shows
|
|
how the strategy chart appears if you use this method in the example.</p>
|
|
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" frame="border" border="1" rules="all"><caption>Table 3. Schedule to meet system and device constraints using multiple tape
|
|
library descriptions</caption><thead align="left"><tr><th valign="top" id="d0e410">Start time</th>
|
|
<th valign="top" id="d0e412">Approximate complete time</th>
|
|
<th valign="top" id="d0e414">Backup group</th>
|
|
<th valign="top" id="d0e416">System</th>
|
|
<th valign="top" id="d0e418">Device</th>
|
|
<th valign="top" id="d0e420">Tape resource forced</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr><td valign="top" headers="d0e410 ">10:00 p.m.</td>
|
|
<td valign="top" headers="d0e412 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e414 ">2</td>
|
|
<td valign="top" headers="d0e416 ">A</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e420 ">TAP01</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e410 ">10:00 p.m.</td>
|
|
<td valign="top" headers="d0e412 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e414 ">5</td>
|
|
<td valign="top" headers="d0e416 ">C</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB02</td>
|
|
<td valign="top" headers="d0e420 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e410 ">11:00 p.m.</td>
|
|
<td valign="top" headers="d0e412 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e414 ">6</td>
|
|
<td valign="top" headers="d0e416 ">C</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB02</td>
|
|
<td valign="top" headers="d0e420 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e410 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e412 ">6:00 a.m.</td>
|
|
<td valign="top" headers="d0e414 ">1</td>
|
|
<td valign="top" headers="d0e416 ">A</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB02</td>
|
|
<td valign="top" headers="d0e420 ">TAP02</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e410 ">1:00 a.m.</td>
|
|
<td valign="top" headers="d0e412 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e414 ">3</td>
|
|
<td valign="top" headers="d0e416 ">B</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e420 ">TAP01</td>
|
|
</tr>
|
|
<tr><td valign="top" headers="d0e410 ">4:00 a.m.</td>
|
|
<td valign="top" headers="d0e412 ">6:00 a.m.</td>
|
|
<td valign="top" headers="d0e414 ">4</td>
|
|
<td valign="top" headers="d0e416 ">B</td>
|
|
<td valign="top" headers="d0e418 ">TAPMLB01</td>
|
|
<td valign="top" headers="d0e420 ">TAP01</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="note"><span class="notetitle">Note:</span> By using the code examples, you agree to the terms of the <a href="codedisclaimer.htm">Code license and disclaimer information</a>.</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html> |