Hitachi

JP1 Version 12 JP1/Automatic Job Management System 3 System Design (Work Tasks) Guide


2.2.4 Using jobnet connectors to control the order of root jobnet execution

Unlike other units such as jobs and nested jobnets, you cannot arrange root jobnet units in a order. However, you can control their execution order through a unit called a jobnet connector.

Organization of this subsection

(1) Overview of using jobnet connectors to control the root jobnet execution order

A jobnet connector links to a root jobnet and controls the order in which it executes. By forcing the root jobnet to wait for another root jobnet to end, or synchronizing its startup process with that of another root jobnet, the jobnet connector can control the execution timing of the root jobnet and its place in the execution order.

The following figure shows the relationship between the jobnet connector and the root jobnet whose execution order it controls.

Figure 2‒14: Relationship between jobnet connector and root jobnet

[Figure]

The jobnet connector is defined as a unit under a jobnet.

A jobnet connector can control the execution order of a root jobnet, or a root jobnet directly under a planning group. It can also control root jobnets that are managed by different scheduler services, as shown in the figure below.

Figure 2‒15: Execution order control of root jobnets managed by different scheduler services

[Figure]

The root jobnet associated with the jobnet connector is called the connection-destination jobnet.

To use jobnet connectors to control the execution order of root jobnets:

  1. Create the jobnets and define the jobnet connectors.

  2. Define the connections between the jobnet connectors and the jobnets whose execution order they control.

    Specify the name of the connection-destination jobnet in the definition of the jobnet connector. If the jobnet whose execution order you are controlling is a root jobnet, specify a root jobnet name. If the target is a root jobnet in a planning group, specify the planning group name.

    In the definition of the connection-destination jobnet, specify the corresponding jobnet connector name.

    Supplementary note

    You can simplify the task of manually entering the definitions by using the Save as Jobnet Connector or Auto-create Jobnet Connector menu commands in JP1/AJS3 - View. However, you must manually enter the definitions if the jobnets in question are managed by different scheduler services.

  3. Register the jobnets for execution.

For details on how to define jobnets and jobnet connectors, see 5. Defining Jobnets in the JP1/Automatic Job Management System 3 Operator's Guide. For details on how to register a jobnet for execution, see 7. Executing Jobnets in the JP1/Automatic Job Management System 3 Operator's Guide.

Cautionary notes
  • You cannot use jobnet connectors with versions of JP1/AJS - View earlier than 08-10, or when connecting to a version of JP1/AJS - Manager earlier than 08-10.

  • If you are using version 08-10 of JP1/AJS - View, or connecting to version 08-10 of JP1/AJS - Manager, you cannot use jobnet connectors to control the execution order of root jobnets that are under the control of different scheduler services. This capability is offered with version 08-50 or later.

  • A jobnet connector must be defined under a root jobnet or nested jobnet.

  • You must specify a root jobnet or planning group as the connection target jobnet for a jobnet connector.

  • Do not define a jobnet connector under a connection-destination jobnet. If you do so, an error will occur when the jobnet is registered for execution.

  • Do not assign a start condition to a jobnet for which a jobnet connector is defined, or to the connection-destination jobnet. If you do so, an error will occur when the jobnet is registered for execution.

  • You cannot define a jobnet connector as a dependent unit or recovery unit.

  • JP1/AJS3 allows you to define a jobnet connector under a dependent jobnet or recovery jobnet. However, we recommend that you avoid doing so due to the complicated relationships this type of arrangement creates.

  • You cannot create a new jobnet connector or delete an existing one while execution is suspended.

  • The execution order control function (jobnet connector) between scheduler services and within the same host cannot be used via NAT.

(2) Rules governing connections between jobnet connectors and connection-destination jobnets

When a jobnet with a jobnet connector and its connection-destination jobnet are registered for execution, a relationship is established between generations that share an execution date. You can control the execution order of related root jobnets, for example by having one wait for the other to finish, or having them start simultaneously.

(a) Connection rules

Relationships are established between generations of a jobnet for which a jobnet connector is defined and those of its connection-destination jobnet, when both of the following conditions are satisfied:

  • The generations share the same execution date.

  • The generations are not part of a connected relationship with another generation.#

#

The relationship between the jobnets is not formalized until both have started, or one has skipped execution due to being placed in skipped so not executed status.

When a jobnet is scheduled for execution more than once on the same day, a relationship is established between generations with the earliest scheduled execution times among those that meet the above conditions. However, no relationship is formalized while either jobnet's schedule is still a dummy schedule.

The following figure shows an example of the connections established between a root jobnet for which a jobnet connector is defined (jobnet S) and its connection-destination jobnet (jobnet A) once both have been registered for execution.

Figure 2‒16: Example of connections between jobnet connector and connection-destination jobnet

[Figure]

A connection is established between @A103 of jobnetS and generation @A101 of jobnetA because they share the same execution date. No connection is established between generation @A104 of jobnetS and generation @A102 of jobnetA because they are scheduled for execution on different dates. Although jobnetS and jobnetA are both tentatively scheduled for execution on 4/20 (Fri), no connection is established while the schedule is still a dummy schedule.

(b) Using the 48-hour schedule

If you are using the 48-hour schedule to calculate schedules, connections are established between generations with the same execution date.

The following figure shows an example of the connections established under a 48-hour schedule.

Figure 2‒17: Example of connections between jobnet connector and connection-destination jobnet (48-hour schedule)

[Figure]

A connection is established between generation @A103 of jobnetS and generation @A102 of jobnetA, even though they are scheduled to execute on different calendar dates. This is because the two generations share an execution date under the 48-hour schedule.

(c) Behavior when base times differ

If a root jobnet with a jobnet connector has a different base time from its connection-destination jobnet, a connection is still established between generations that share an execution date.

The following figure shows an example of the connections established between jobnets with different base times.

Figure 2‒18: Example of connections between jobnet connector and connection-destination jobnet (different base times)

[Figure]

Although generation @A103 of jobnetS and generation @A102 of jobnetA are scheduled to execute on different calendar dates, a connection is established between the jobnets because both have an execution date of 4/17 with respect to their base time. In this manner, when you control the execution order of root jobnets that have different base times, connections might be established between jobnets that are scheduled to execute on different calendar dates. For this reason we recommend that you coordinate the base times of jobnet connectors and their connection-destination jobnets.

(d) Effects when the execution date of a generation changes

Connections between generations of a root jobnet with a jobnet connector and its connection-destination jobnet might be lost if either jobnet has its registration canceled or execution suspended before execution.

If a temporary plan change or a change to a schedule definition shifts a generation's execution date, this change will also affect the connections between generations. The following figure shows an example of how connections are affected when changes are made to a generation's scheduled execution date.

Figure 2‒19: Connections when the scheduled execution date changes

[Figure]

Generation @A103 of jobnetS and generation @A101 of jobnetA were connected because they shared an execution date. However, when a temporary plan change shifts the scheduled execution date of @A101 back by a day to 4/18, the connection with @A103 is severed. Instead, @A101 establishes a connection with @A104, which is scheduled for execution on 4/18.

(e) When a jobnet is scheduled for execution more than once in one day

Connections are established between generations that have the same execution date, even if the jobnet is scheduled for execution more than once on a given day. However, because this can result in complicated relationships if the execution schedule of a jobnet changes, we recommend that you schedule jobnets related by a jobnet connector to execute only once per day.

Cautionary note

If execution is delayed for a jobnet with a jobnet connector that is scheduled to execute multiple times in one day, and Synchronous is specified as the method of execution order control, the next scheduled generation of the connection-destination jobnet might not be generated at all. Because the relationships of a delayed jobnet can be complicated, we recommend that you schedule jobnets with a jobnet connector to execute only once per day. For details, see (3)(b) Synchronous execution.

The following figure shows an example of temporarily rescheduling a jobnet that is scheduled to execute more than once per day.

Figure 2‒20: Effect of temporarily rescheduling a jobnet scheduled to execute multiple times per day

[Figure]

Of the generations scheduled to execute on the same day, connections are established in order, starting from those with the earliest scheduled execution times. Accordingly, generation @A103 of jobnetS establishes a connection with generation @A101 of jobnetA. At this stage, if a change to the schedule plan for jobnetS pushes the execution date of generation @A103 back to 4/19 (Thu), the connection between generation @A103 of jobnetS and generation @A101 of jobnetA is severed, and generation @A101 of jobnetA establishes a new connection with generation @A104 of jobnetS.

If you use JP1/AJS3 - View or the ajsshow command to simulate the connections between jobnets scheduled for execution more than once per day, the simulation will show multiple connections for unexecuted generations.

The following figure shows an example of such a situation. This simulation assumes that all generations are in Wait for start time status.

Figure 2‒21: Example of connection simulation for jobnets scheduled to execute multiple times per day

[Figure]

In the simulation, because jobnetS and jobnetA share an execution date, generation @A103 of jobnetS connects to the generation of jobnetA with the earliest scheduled execution time, in this case @A101. However, because the connection between generation @A103 of jobnetS and generation @A101 of jobnetA remains unfixed, the simulation also connects generation @A101 to generation @A104 of jobnetS. The simulation similarly connects generation @A101 of jobnetA to generation @A103 of jobnetS, and generation @A102 of jobnetA to generation @A103 of jobnetS.

(f) Behavior when time zones differ

When a root jobnet with a jobnet connector and its connection-destination jobnet are scheduled under different time zones, connections will still be established between generations if their execution dates are the same. However, for the sake of simplicity, we recommend that jobnet connectors and their connection-destination jobnets use the same time zone.

(g) Behavior when scheduler services have different local times

When the scheduler service governing a root jobnet with a jobnet connector uses a different local time setting from the scheduler service of the connection-destination jobnet, connections will still be established between generations if their execution dates are the same.

The following figure shows an example of the connections established between jobnets when their scheduler services use different local time settings.

Figure 2‒22: Example of connections between jobnet connector and connection-destination jobnet (when scheduler services have different local time settings)

[Figure]

Although generation @A103 of jobnetS and generation @A101 of jobnetA are scheduled to execute on different calendar days, a connection is established between them because both are scheduled for execution on 4/17 at their respective local times. To avoid a situation in which connections are established between generations scheduled for execution on different days, ensure that the scheduler services responsible for the connection-destination jobnet and the jobnet connector are set to the same local time.

(3) Methods for controlling the execution order of root jobnets

The method of execution order control governs whether execution of the root jobnet is synchronized with execution of the jobnet connector. Specify the control method in the settings of the connection-destination jobnet. The default is Asynchro.

The following describes the behavior at root jobnet execution under each control method.

(a) Asynchronous execution

If Asynchro is set as the method of execution order control, the connection-destination jobnet executes according to its own schedule regardless of any connections with other jobnets and the status of the jobnet connector.

The following figure shows how the respective jobnets are executed under the asynchronous method of execution order control. Here, jobnetS is the jobnet with the jobnet connector, and jobnetA is the connection-destination jobnet.

Figure 2‒23: Operation under asynchronous execution order control

[Figure]

Cautionary note

Even when multi-schedule is set as the schedule option, execution will not start at the subsequent execution start time if the previous execution schedule has not started yet. If multi-schedule is set both on the root jobnet for which the jobnet connector is defined and on the connected jobnet, make sure that the previous execution schedule starts before the subsequent execution start time arrives.

(b) Synchronous execution

If Synchro is set as the method of execution order control, generations in a connected relationship wait until the jobnet connector has executed before starting. In the absence of a corresponding generation with the same execution date, a generation will execute according to its own schedule.

The following figure shows how the respective jobnets are executed under the synchronous method of execution order control. Here, jobnetS is the jobnet with the jobnet connector, and jobnetA is the connection-destination jobnet.

Figure 2‒24: Operation under synchronous execution order control

[Figure]

JobnetS and jobnetA have scheduled start times of 6:00 and 5:00, respectively. The connected relationship between the generations that are scheduled for execution on 4/16 (Mon) and 4/18 (Wed) means that on these days, jobnetA starts in synchronization with the jobnet connector, instead of at 5:00 as scheduled. The generation of jobnetA scheduled for execution on 4/17 (Tue), which lacks a connection to a generation of jobnetS, starts at 5:00 as originally scheduled.

The synchronous execution setting applies only to the first execution, not to any subsequent re-executions. To apply synchronous execution to re-executed generations, you can use the function for temporarily changing the method of execution order control.

Cautionary notes
  • Even when multi-schedule is set as the schedule option, execution will not start at the subsequent execution start time if the previous execution schedule has not started yet. If multi-schedule is set both on the root jobnet for which the jobnet connector is defined and on the connected jobnet, make sure that the previous execution schedule starts before the subsequent execution start time arrives.

  • If execution is delayed for a jobnet with a jobnet connector that is scheduled to execute multiple times per day, and Synchro is specified as the method of execution order control, the next scheduled generation of the connection-destination jobnet might not be generated at all. Because the relationships of a delayed jobnet can be complicated, we recommend that you schedule jobnets with a jobnet connector to execute only once per day.

    The following figure shows an example in which jobnets are executed more than once per day with the execution order control method set to Synchro.

    Figure 2‒25: Example of executing jobnets multiple times per day based on synchronous execution order control

    [Figure]

In this example, the scheduled execution start times of the root jobnet for which the jobnet connector is defined (jobnetS) and the connection-destination jobnet (jobnetA) are 6:00, 12:00, and 18:00. Schedule skip is set as the schedule option, and planned execution registration is used as the execution registration method.

The following describes the behavior of jobnetS and jobnetA with respect to generation @A104 of jobnetS (6:00 start time), when the preceding "Job 1" of the jobnet connector has not completed by the time jobnetS is next scheduled for execution (12:00).

  1. Generation @A105 of jobnetS scheduled for execution at 12:00 enters Skipped so not executed status.

    Because schedule skip is set as the schedule option for jobnetS, generations whose execution overlaps with that of an earlier scheduled generation enter Skipped so not executed status and their execution is skipped.

    Because generation @A101 has not started by 12:00, the generation of jobnetA scheduled for execution at that time is removed from the dummy schedule.

  2. After Job 1 has finished executing, the jobnet connector associated with generation @A104 of jobnetS is executed.

    Because synchronous execution is specified, generation @A101 of jobnetA also begins executing. At the same time, JP1/AJS3 creates the next scheduled generation of jobnetA (scheduled for 18:00) in Wait for start time status. This generation is assigned the execution ID @A103. At this point, a connection is established between generation @A105 of jobnetS, which was placed in Skipped so not executed status, and generation @A103 of jobnetA. Because generation @A103 of jobnetA is connected to a jobnet in Skipped so not executed status, it remains in Wait for start time status and is not executed. For an explanation of the status transitions undergone by the jobnet connector and connection-destination jobnet, see (4) Transitions of jobnet connector and connection-destination jobnet statuses.

  3. At 18:00, the generation of jobnetS scheduled for execution at that time (@A106) is executed.

    At this stage, generation @A106 of jobnetS has no connection to any other generation. Hence, generation @A106 of jobnetS waits in Now running status until generation @A103 of jobnetA has finished and it is clear whether any generations of jobnetA can serve as a connection target.

    If you change to asynchronous execution by using the function for temporarily changing the execution order control method, generation @A106 will be executed regardless of whether any connected generations exist. For details on this feature, see (c) Temporarily changing the method of execution order control.

If generation @A105 of jobnetS is re-executed from its Skipped so not executed status before 18:00, the connected generation @A103 of jobnetA is also executed. If a new generation of jobnetA is created after generation @A103 has finished, a connection is established between generation @A106 of jobnetS and this new generation, and generation @A106 is executed. If no new generation is created, the jobnet connector associated with generation @A106 of jobnetS enters Bypassed status.

(c) Temporarily changing the method of execution order control

JP1/AJS3 provides a feature for temporarily changing the method of execution order control. You can use this feature to synchronize re-execution of a connection-destination jobnet with a jobnet connector, or to apply a different method of execution order control to a particular generation.

To access this feature, choose Operations and then Change Execution Order Method in the following windows:

  • Daily Schedule (Hierarchy) window

  • Monthly Schedule window

  • Jobnet Monitor window

Supplementary note

You cannot change the method of execution order control for a dummy schedule.

(4) Transitions of jobnet connector and connection-destination jobnet statuses

This section describes the status transitions that apply to jobnet connectors and their connection-destination jobnets. For details on the statuses that these units can acquire, see 6.1 Status levels of jobnets, jobs, and jobnet connectors in the manual JP1/Automatic Job Management System 3 Overview.

(a) Jobnet connector status transitions

When you register a jobnet with a jobnet connector for execution, the root jobnet associated with the jobnet connector begins executing. At the point when all preceding units in the jobnet have ended, the status of the jobnet connector changes according to the status of the connection-destination jobnet.

The following table lists the status transitions that apply to jobnet connectors.

Table 2‒6: Jobnet connector status transitions

Status of connection-destination jobnet

Status of jobnet connector

Not registered

Running + Abend

(No generations)#1

Bypassed

Not sched. to exe.

Bypassed

Wait for start time

Now running

Being held

Now running

Skipped so not exe.

Running + Abend#2

Ended normally

Ended normally

Ended with warning

Ended with warning

Ended abnormally

Running + Abend#2

Interrupted

Running + Abend#2

Killed

Running + Abend#2

Shutdown

Running + Abend

Invalid exe. seq.

Running + Abend#2

Now running

Now running

Running + Warning

Running + Warning

Running + Abend

Running + Abend

#1

The connection-destination jobnet is registered for execution, but there are no generations that connect to the jobnet connector. For details on the connection rules, see (2) Rules governing connections between jobnet connectors and connection-destination jobnets.

#2

If, while the status of the jobnet connector is Running + Abend, a generation of the connection-destination jobnet that is in the end status is deleted by managing saved generations or by cancelling registration, the status of the jobnet connector changes to Ended abnormally.

The jobnet connector immediately enters Ended abnormally status if the definition of the jobnet connector is invalid. Possible reasons are as follows:

  • No connection-destination unit is specified.

  • A non-existent unit is specified as the connection-destination jobnet.

  • The unit specified as the connection-destination jobnet is neither a root jobnet nor a planning group.

  • Execution order control is disabled in the definition of the unit specified as the connection-destination jobnet.

  • The Jobnet Connector is specified incorrectly in the definition of the unit specified as the connection-destination jobnet.

  • The Connection range setting of the jobnet connector is different from that of the connection-destination jobnet.

  • One of the following problems renders the definition invalid when Other service is specified for Connection range.

    • JP1/AJS3 cannot connect to the host specified in Connection host.

    • The scheduler service specified in Connection service does not exist.

    • The host specified in Connection host for the connection-destination jobnet is different from that of the jobnet connector.

    • The scheduler service specified in Connection service for the connection-destination jobnet is different from that of the jobnet connector.

(b) Connection-destination jobnet status transitions

When a connection-destination jobnet is registered for execution, its behavior at execution changes according to the status of connected generations, as well as which execution order control method (synchronous or asynchronous) is in effect.

The following table lists the status transitions that apply to connection-destination jobnets.

Table 2‒7: Connection-destination jobnet status transitions

Status of jobnet connector

Status of connection-destination jobnet

Synchronous

Asynchronous

Not registered

Wait for start time

Now running

(No generations)#1

Now running

Now running

Not sched. To exe.

Wait for start time

Now running

Wait for prev. to end

Wait for start time

Now running

Not executed + Ended

Wait for start time#2

Now running

Bypassed

Now running

Now running

Now running

Now running

Now running

Ended normally

Wait for start time#2

Now running

Ended with warning

Wait for start time#2

Now running

Ended abnormally

Wait for start time#2

Now running

Killed

Wait for start time#2

Now running

Shutdown

Wait for start time#2

Now running

Unknown end status

Wait for start time#2

Now running

#1

The jobnet connector is registered for execution, but there are no generations that connect to connection-destination jobnets. For details on the connection rules, see (2) Rules governing connections between jobnet connectors and connection-destination jobnets.

#2

If the jobnet connector has already terminated as a result of user intervention by the time the connection-destination jobnet starts, the connection-destination jobnet will stay in Wait for start time status until the jobnet connector is executed. You can resolve this issue by re-executing the jobnet connector, or by temporarily changing the method of execution order control for the connection-destination jobnet to asynchronous.

The connection-destination jobnet immediately enters Ended abnormally status if the definition of the jobnet contains an error, such as one of those listed below. However, if the jobnet is subject to asynchronous control and Other service is specified for Connection range, the jobnet executes as normal without entering Ended abnormally status even if the jobnet definition contains an error. For this reason, we recommend that you use the definition pre-check function to check the definition of the connection-destination jobnet before you register it for execution.

  • Execution order control is enabled, but no jobnet connector name is specified.

  • A non-existent unit is specified as the jobnet connector.

  • The unit specified as the jobnet connector is not a jobnet connector.

  • The specified jobnet connector is associated with a different connection target.

  • The Connection range setting of the jobnet connector is different from that of the connection-destination jobnet.

  • One of the following problems renders the definition invalid when Other service is specified for Connection range:

    • JP1/AJS3 cannot connect to the host specified in Connection host.

    • The scheduler service specified in Connection service does not exist.

    • The host specified in Connection host for the jobnet connector is different from that of the connection-destination jobnet.

    • The scheduler service specified in Connection service for the jobnet connector is different from that of the connection-destination jobnet.

(c) When communication between scheduler services fails

When the execution order of root jobnets governed by different scheduler services is controlled, communication between the respective scheduler services takes place at the following times:

  • When the jobnet connector starts executing

  • When the connection-destination jobnet starts executing

  • When the status of the connection-destination jobnet changes

This subsection describes how the statuses of the jobnet connector and the connection-destination jobnet are affected when a communication error occurs at each of these stages. For details about how to troubleshoot errors, see 2.6.5 Troubleshooting problems related to jobnet connectors in the manual JP1/Automatic Job Management System 3 Troubleshooting.

■ If a communication error occurs when the jobnet connector starts executing

When the jobnet connector starts executing, connections are established with generations of the connection-destination jobnet. For information about this process, see (2) Rules governing connections between jobnet connectors and connection-destination jobnets.

If a communication error occurs during this process, the jobnet connector enters Ended abnormally status. The status of the connection-destination jobnet remains unchanged.

■ If a communication error occurs when the connection-destination jobnet starts executing

When synchronous control is used for the connection-destination jobnet, connections are established with generations of the jobnet connector when the connection-destination jobnet starts executing. For information about this process, see (2) Rules governing connections between jobnet connectors and connection-destination jobnets.

If a communication error occurs during this process, the connection-destination jobnet enters Ended abnormally status. The status of the jobnet connector remains unchanged.

■ If a communication error occurs when the status of the connection-destination jobnet changes

The jobnet connector remains unaware of the change to the connection-destination jobnet's status. Consequently, the jobnet connector does not undergo a corresponding status change.

(5) Re-execution of jobnet connectors and connection-destination jobnets

The following describes the re-execution of jobnet connectors and connection-destination jobnets.

(a) Re-executing jobnet connectors

In the same manner as with a job, you can re-execute a jobnet connector only after it has finished executing. Note that because a jobnet connector does not take a hold attribute, you cannot have it immediately placed in Held status upon re-execution.

(b) Re-executing connection-destination jobnets

A connection-destination jobnet can be re-executed in the same manner as a standard jobnet. However, after a jobnet controlled by the synchronous method has been executed once, subsequent executions run according to the asynchronous method. Consequently, such a connection-destination jobnet will not synchronize with the jobnet connector at re-execution. You can synchronize re-execution with a jobnet connector by changing the execution order control method to synchronous by using the feature provided for this purpose.

(c) Effect on re-execution when connections between generations are severed

A generation that is in a connected relationship with another generation might be removed from the schedule for some reason. This might be due to a cancellation of registration, execution cancellation, or changes to the number of logs to keep. In this case, you will be unable to re-execute the generation that was in the connected relationship with the deleted generation. The following table shows how JP1/AJS3 behaves when one of a pair of connected generations is deleted, and describes what action the user must take.

Table 2‒8: Handling re-execution when a connected relationship is severed

Generation

Behavior at re-execution

Action to take

The remaining generation is the jobnet connector

Upon re-execution, the jobnet connector enters Ended abnormally# status.

Resume the job flow from the unit succeeding the jobnet connector.

The remaining generation is the connection-destination jobnet

When you re-execute the connection-destination jobnet after changing the execution order control method to synchronous, the jobnet enters Ended abnormally# status.

Temporarily change the execution order control method to asynchronous, and re-execute the connection-destination jobnet.

#

The jobnet connector or connection-destination jobnet will enter Ended abnormally status only if you re-execute it after it has already finished. You will be able to re-execute the unit without it entering Ended abnormally status if you do so while it is still running.

(6) Jobnet connector polling

When you control the execution order of root jobnets governed by different scheduler services, jobnet connectors and connection-destination jobnets under synchronous control check the status of their counterparts by regular polling. This polling takes place during the following periods:

The jobnet connector or connection-destination jobnet will end abnormally if polling fails for some reason, such as an interruption to the scheduler service or a communication error, and it cannot confirm the status of its counterpart.