Source: projects/identity-management/oim-kb-update/sandbox-db/2026-04-27-dbqueue-pjobcreate-procedure-evidence.md
> Source: projects/identity-management/oim-kb-update/sandbox-db/2026-04-27-dbqueue-pjobcreate-procedure-evidence.md
Sandbox DB Evidence - DBQueue Insert and QBM_PJobCreate Procedures
Scope: SELECT-only metadata inspection in live sandbox OneIM DB on im.sandbox.local.
Procedure Surface
Query:
SELECT p.name AS ProcedureName,
STRING_AGG(CONCAT(par.name, ' ', TYPE_NAME(par.user_type_id)), '; ')
WITHIN GROUP (ORDER BY par.parameter_id) AS Parameters
FROM sys.procedures p
LEFT JOIN sys.parameters par ON par.object_id = p.object_id
WHERE p.name LIKE 'QBM[_]PDBQueueInsert[_]%'
OR p.name LIKE 'QBM[_]PJobCreate%'
GROUP BY p.name
ORDER BY p.name;
Findings:
QBM_PDBQueueInsert_Single,QBM_PDBQueueInsert_Bulk,QBM_PDBQueueInsert_Int, andQBM_PDBQueueInsert_WaitForCompexist.- 29
QBM_PJobCreate*procedures exist. QBM_PJobCreate*families include generic, HandleObject (HO*), batch (_B), list (_L), mail, SQL delete/proc, and maintenance variants.
Important live signatures:
| Procedure | Parameters |
|---|---|
QBM_PDBQueueInsert_Single | @UID_Task, @object, @SubObject, @GenProcID, @Dummy_no_Check_For_Existing, @Dummy_Sort_Order |
QBM_PDBQueueInsert_Bulk | @UID_Task, @DBQueueElements (QBM_YDBQueueRaw), @Dummy_Sort_Order, @Dummy_no_Check_For_Existing |
QBM_PJobCreate | @ComponentClass, @TaskName, @Parameters, @GenProcID, @ObjectKeysAffected, @isToFreezeOnError, @Retries, @priority, @Jobchainname, @StartAt, @BasisObjectKey, @XUser, @QueueName, @checkForExisting |
Usage Footprint
Query:
WITH Hits AS (
SELECT OBJECT_NAME(m.object_id) AS ObjectName, o.type_desc,
CAST(CASE WHEN m.definition LIKE '%QBM_PDBQueueInsert_Single%' THEN 1 ELSE 0 END AS int) AS HasSingle,
CAST(CASE WHEN m.definition LIKE '%QBM_PDBQueueInsert_Bulk%' THEN 1 ELSE 0 END AS int) AS HasBulk,
CAST(CASE WHEN m.definition LIKE '%QBM_PJobCreate%' THEN 1 ELSE 0 END AS int) AS HasJobCreate
FROM sys.sql_modules m
JOIN sys.objects o ON o.object_id = m.object_id
WHERE m.definition LIKE '%QBM_PDBQueueInsert_Single%'
OR m.definition LIKE '%QBM_PDBQueueInsert_Bulk%'
OR m.definition LIKE '%QBM_PJobCreate%'
)
SELECT type_desc,
COUNT(*) AS ObjectsWithAnyHit,
SUM(HasSingle) AS ObjectsWithSingle,
SUM(HasBulk) AS ObjectsWithBulk,
SUM(HasJobCreate) AS ObjectsWithJobCreate
FROM Hits
GROUP BY type_desc
ORDER BY type_desc;
Result:
| Object type | Any hit | Single | Bulk | JobCreate |
|---|---|---|---|---|
SQL_SCALAR_FUNCTION | 7 | 1 | 3 | 4 |
SQL_STORED_PROCEDURE | 209 | 55 | 97 | 83 |
SQL_TRIGGER | 918 | 375 | 524 | 80 |
Interpretation: DBQueue and object-layer job creation procedures are heavily used by generated/shipped DB code, especially triggers.
DBQueue Configuration Snapshot
Query:
SELECT FullPath, Value, Enabled, IsEnabledResulting
FROM DialogConfigParm
WHERE FullPath LIKE 'QBM\DBQueue%'
ORDER BY FullPath;
Result:
| FullPath | Value | Enabled | Effective |
|---|---|---|---|
QBM\DBQueue | 1 | true | true |
QBM\DBQueue\BufferTimeout | 120 | true | true |
QBM\DBQueue\ChangeLimitDefault | 3000 | true | true |
QBM\DBQueue\CountSlotsMax | 5 | true | true |
QBM\DBQueue\DefaultRuntime | 90 | true | true |
QBM\DBQueue\GenProcIDReplaceLimit | 2000 | false | false |
QBM\DBQueue\KeepAlive | 20 | true | true |
QBM\DBQueue\MaxBulkFactor | 15000 | true | true |
QBM\DBQueue\OverloadLimit | 200000 | true | true |
Note: vendor 9.3+/V10 docs mention QBM | DBQueue | MaxSlotsPerTask, but this snapshot did not return an enabled/config row for that path. Track as an open delta.
QBMDBQueueTask Shape
Live columns observed:
UID_TaskProcedureNameIsBulkEnabledCountParameterMaxInstanceQueryForRecalculateChangeLimitExecutionDelaySecondsRestoreDelayCustomWeightBulkLimit
This matches the 9.3+/V10 model where task metadata, dependencies (QBMDBQueueTaskDepend), and CustomWeight matter for scheduling.
Follow-up Targets
- Pull representative definitions for IT Shop / ShoppingRack procedures that call
QBM_PDBQueueInsert_*orQBM_PJobCreate*. - Confirm where
MaxSlotsPerTaskis stored/surfaced in this V10 sandbox. - Observe negative slot numbers during a controlled AD sync or IT Shop publish run.