Software Delivery Error: Item has already been ordered to be installed, or item is being installed, using this Procedure. [SDM223608]

Document ID : KB000116592
Last Modified Date : 29/09/2018
Show Technical Document Details
Issue:
When attempting to deliver a software package, the following error message is observed:

Item has already been ordered to be installed, or item is being installed, using this Procedure. [SDM223608]

User-added image
Environment:
Client Automation (ITCM) -- any version.
Cause:
This error occurs when another job container exists, that contains the application of the same software package, to the same agent.  It is also possible, that if no such job container exists, that the condition exists in the database, and requires manual cleanup.
Resolution:
Start with the assumption that there exists an existing job container, that is attempting to apply the same software package, to the same agent.  If one is found, you can choose to terminate it, in favor of creating a new container, or let the job container continue to be executed.  Software delivery will not allow you to create more than one job container, to apply the same package, to the same agent.

However, if after reviewing each job container on the domain manager, there is truly no container that contains the application of this software package, to the same agent (or group of agents), then you can use the following steps to clear this condition from the database:

1- Query the objectid of the software package:
select objectid, itemname, itemversion from usd_rsw where itemname='Package Name'

2- Using the objectid from above, query all procedures associated with the package, and locate the objectid of the procedure you pushed, to cause the error:
select * from usd_actproc where rsw=<objectid from above query #1>

Note: The result will have multiple records.  Be sure to choose the objectid that matches the procedure you are attempting to push to the target agent.

3- Using the objectid from above (#2), check if this query returns any records:
select * from usd_applic where activity=0x0 and actproc=<objectid from above #2> and status not in (4,5,6,9,10,13,14,15)

The above query shows existing applications (usd_applic), that are not associated with any activity (activity=0x0, a reference to the usd_activity table), and has a status code that indicates the job is in-progress.

4- Change the SELECT query, to a DELETE query, to remove these records:
delete from usd_applic where activity=0x0 and actproc=<objectid from above #2> and status not in (4,5,6,9,10,13,14,15)

5- Recreate the job container, and now the job should build, as expected.
Additional Information:
For more information on the ITCM database schema, refer to this link:
https://support.ca.com/phpdocs/0/common/impcd/r11/MDBMain/schema/viewer/index.htm

Additionally, here is the list of status codes, for the column in usd_applic:
0    UNDEFINED
1    WAITING
2    DELIVERY_ORDERED
3    DELIVERING
4    DELIVERY_OK
5    DELIVERY_ERROR
6    ALREADY_DELIVERED
7    EXECUTION_ORDERED
8    EXECUTING
9    EXECUTION_OK
10    EXECUTION_ERROR
11    UNDELIVERY_ORDERED
12    UNDELIVERING
13    UNDELIVERY_OK
14    UNDELIVERY_ERROR
15    ALREADY_INSTALLED
16    MANIPULATION_NOT_ALLOWED
17    DELIVERY_SUSPEND_ORDERED
18    DELIVERY_SUSPEND_INPROGRESS
19    DELIVERY_SUSPENDED
20    DELIVERY_RESUME_ORDERED
21    DELIVERY_RESUME_INPROGRESS
22    UNDELIVERY_SUSPEND_ORDERED
23    UNDELIVERY_SUSPEND_INPROGRESS
24    UNDELIVERY_SUSPENDED
25    UNDELIVERY_RESUME_ORDERED,
26    UNDELIVERY_RESUME_INPROGRESS
27    EXECUTION_ORDER_STAGED