1 tony 1.1 // ===================================================================
2 // Title: System Processing 2.8
3 // Filename: System28_Processing.mof
4 // Version: 2.8
5 // Release: Preliminary
6 // Date: 08/18/2003
7 // ===================================================================
8 // Copyright 1998-2003 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 tony 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 tony 1.1 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific concepts to
46 // manage processes, threads, and jobs.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.8 Preliminary
53 // CR933 - ExecutionState additions
54 // CR989 - Remove the Abstract qualifier from ScheduledJob,
55 // clarify the class and several property Descriptions,
56 // and fix the class and a property name
57 // CR1016 - Job Updates
58 // CR1048 - Add JobQueue & QueueStatisticalData
59 // CR1081 - Move CIM_Job & Concrete to Core
60 // CR1128 - Addition of HostedDependency
61 // CR1135 - Job Recovery Properties and the RecoveryJob association
62 // CR1137 - Change NumberOnQueue property (to two new properties)
63 // in QueueStatisticalData and add MaxJobCPUTime to
64 tony 1.1 // JobQueue
65 //
66 // Change Log for v2.7 Final
67 // CR988 - Update description and change subclassing of JobDestination
68 // CR994 - Update the description of InstanceID
69 // CR989 - Updates to the description and name of ScheduledJob
70 // CR969 - Remove the experimental qualifier
71 // - Remove JobScheduleSettingData so it can remain experimental
72 // in 2.8.
73 //
74 // Change Log for v2.7
75 // CR757 - Change the subclassing of Process, Thread and Job from
76 // LogicalElement to EnabledLogicalElement
77 // CR767 - Add the Compostion qualifer to OSProcess and ProcessThread
78 // CR768 - Add ScheduledJob
79 // - Update class description and all property descriptions of
80 // Job, and Add a new property ScheduledStartTime to Job
81 // - Add OwningJobElement
82 // - Add AffectedJobElement
83 // - Add ConcreteJob
84 // - Add ProcessOfJob
85 tony 1.1 // CR875 - Clarify description of Process .KernelModeTime and
86 // .UserModeTime
87 // ==================================================================
88
89 #pragma locale ("en_US")
90
91
92 // ===================================================================
93 // Process
94 // ===================================================================
95 [Version ("2.7.0"), Description (
96 "Each instance of the CIM_Process class represents a single "
97 "instance of a running program. A user of the OperatingSystem "
98 "will typically see a Process as an application or task. "
99 "Within an OperatingSystem, a Process is defined by a workspace "
100 "of memory resources and environmental settings that are "
101 "allocated to it. On a multitasking System, this workspace "
102 "prevents intrusion of resources by other Processes. "
103 "Additionally, a Process can execute as multiple Threads, all "
104 "which run within the same workspace.") ]
105 class CIM_Process : CIM_EnabledLogicalElement {
106 tony 1.1
107 [Key, Propagated ("CIM_OperatingSystem.CSCreationClassName"),
108 Description (
109 "The scoping ComputerSystem's CreationClassName."),
110 MaxLen (256) ]
111 string CSCreationClassName;
112
113 [Key, Propagated ("CIM_OperatingSystem.CSName"), Description (
114 "The scoping ComputerSystem's Name."),
115 MaxLen (256) ]
116 string CSName;
117
118 [Key, Propagated ("CIM_OperatingSystem.CreationClassName"),
119 Description (
120 "The scoping OperatingSystem's CreationClassName."),
121 MaxLen (256) ]
122 string OSCreationClassName;
123
124 [Key, Propagated ("CIM_OperatingSystem.Name"), Description (
125 "The scoping OperatingSystem's Name."),
126 MaxLen (256) ]
127 tony 1.1 string OSName;
128
129 [Key, Description (
130 "CreationClassName indicates the name of the class or the "
131 "subclass used in the creation of an instance. When used "
132 "with the other key properties of this class, this property "
133 "allows all instances of this class and its subclasses to be "
134 "uniquely identified."),
135 MaxLen (256) ]
136 string CreationClassName;
137
138 [Key, Description (
139 "A string used to identify the Process. A Process ID is a "
140 "kind of Process Handle."),
141 MaxLen (256),
142 MappingStrings {"MIF.DMTF|Process Information|001.1"} ]
143 string Handle;
144
145 [Override ("Name"), Description (
146 "The name of the process."),
147 MappingStrings {"MIF.DMTF|Process Information|001.6"} ]
148 tony 1.1 string Name;
149
150 [Description (
151 "Priority indicates the urgency or importance of execution "
152 "of a Process. If a priority is not defined for a Process, "
153 "a value of 0 should be used."),
154 MappingStrings {"MIF.DMTF|Process Information|001.10"} ]
155 uint32 Priority;
156
157 [Description (
158 "Indicates the current operating condition of the Process. "
159 "Values include ready (2), running (3), and blocked (4), "
160 "among others. The majority of the enumerated values are "
161 "obvious. However, a few require additional explanation:\n"
162 "7 (Terminated) describes that a process has naturally completed\n"
163 "8 (Stopped) describes that a process has been prematurely "
164 "'stopped' by a user or other request\n"
165 "10 (Ready but Relinquished Processor) describes that a "
166 "process is in the Ready state, but has voluntarily "
167 "relinquished execution time to other processes. For "
168 "example, this state may indicate a problem when the "
169 tony 1.1 "relinquishing process is not handling items on its queues. "
170 "If these semantics cannot be detected, the process should "
171 "report its state as 2 (\"Ready\").\n"
172 "11 (Hung) indicates that a process is not responding and "
173 "should therefore not be given further execution time."),
174 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
175 "10", "11"},
176 Values {"Unknown", "Other", "Ready", "Running", "Blocked",
177 "Suspended Blocked", "Suspended Ready", "Terminated",
178 "Stopped", "Growing", "Ready But Relinquished Processor",
179 "Hung"},
180 MappingStrings {"MIF.DMTF|Process Information|001.9",
181 "MIF.UNIX|Process Information|13.9"} ]
182 uint16 ExecutionState;
183
184 [Description (
185 "A string describing the state - used when the instance's "
186 "ExecutionState property is set to 1 (\"Other\"). Other "
187 "ExecutionDescription should be set to NULL when the "
188 "Execution State property is any value other than 1.") ]
189 string OtherExecutionDescription;
190 tony 1.1
191 [Description (
192 "Time that the Process began executing.") ]
193 datetime CreationDate;
194
195 [Description (
196 "Time that the Process was stopped or terminated.") ]
197 datetime TerminationDate;
198
199 [Description (
200 "Time in kernel mode, in milliseconds. If this information "
201 "is not available, or if the operating system does not "
202 "distinguish between time in kernel and in user mode, a "
203 "value of 0 should be used."),
204 Units ("MilliSeconds"),
205 MappingStrings {"MIF.DMTF|Process Information|001.13"} ]
206 uint64 KernelModeTime;
207
208 [Description (
209 "Time in user mode, in milliseconds. If this information is "
210 "not available, a value of 0 should be used. If the "
211 tony 1.1 "operating system does not distinguish between time in "
212 "kernel mode and user mode, the time should be returned in "
213 "this property."),
214 Units ("MilliSeconds"),
215 MappingStrings {"MIF.DMTF|Process Information|001.14"} ]
216 uint64 UserModeTime;
217
218 [Description (
219 "The amount of memory in bytes that a Process needs to "
220 "execute efficiently, for an OperatingSystem that uses "
221 "page-based memory management. If an insufficient amount of "
222 "memory is available (< working set size), thrashing will "
223 "occur. If this information is not known, NULL or 0 should "
224 "be entered. If this data is provided, it could be "
225 "monitored to understand a Process' changing memory "
226 "requirements as execution proceeds."),
227 Units ("Bytes"), Gauge ]
228 uint64 WorkingSetSize;
229 };
230
231
232 tony 1.1 // ===================================================================
233 // OSProcess
234 // ===================================================================
235 [Association, Aggregation, Composition, Version ("2.7.0"),
236 Description (
237 "A link between the OperatingSystem and Process(es) running in "
238 "the context of this OperatingSystem.") ]
239 class CIM_OSProcess : CIM_Component {
240
241 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
242 Description (
243 "The OperatingSystem.") ]
244 CIM_OperatingSystem REF GroupComponent;
245
246 [Override ("PartComponent"), Weak, Description (
247 "The Process running in the context of the OperatingSystem.") ]
248 CIM_Process REF PartComponent;
249 };
250
251
252 // ===================================================================
253 tony 1.1 // ProcessExecutable
254 // ===================================================================
255 [Association, Version ("2.6.0"), Description (
256 "A link between a Process and a DataFile indicating that the "
257 "File participates in the execution of the Process.") ]
258 class CIM_ProcessExecutable : CIM_Dependency {
259
260 [Override ("Antecedent"), Description (
261 "The DataFile participating in the execution of the "
262 "Process.") ]
263 CIM_DataFile REF Antecedent;
264
265 [Override ("Dependent"), Description (
266 "The Process.") ]
267 CIM_Process REF Dependent;
268 };
269
270
271 // ==================================================================
272 // ServiceProcess
273 // ==================================================================
274 tony 1.1 [Association, Version ("2.6.0"), Description (
275 "CIM_ServiceProcess is an association used to establish "
276 "relationships between Services and Processes. It is used to "
277 "indicate if a Service is running in a particular Process. It "
278 "is also used to indicate, via the ExecutionType property, if "
279 "the Service started and is wholly responsible for the Process, "
280 "or if the Service is running in an existing Process, perhaps "
281 "with other unrelated Services, which is owned or started by a "
282 "different entity. This association relates a Service with an "
283 "externally visible system signature.") ]
284 class CIM_ServiceProcess {
285
286 [Key, Description (
287 "The Service whose Process is described by this "
288 "association.") ]
289 CIM_Service REF Service;
290
291 [Key, Description (
292 "The Process which represents or hosts the executing "
293 "Service.") ]
294 CIM_Process REF Process;
295 tony 1.1
296 [Description (
297 "Enumeration indicating how the Service runs in the context "
298 "of, or owns the Process. \"Unknown\" indicates that the "
299 "ExecutionType is not known. \"Other\" indicates that the "
300 "ExecutionType does not match any of the values in the "
301 "ExecutionType enumeration. \"Executes in Existing "
302 "Process\" indicates that the Service is hosted in a Process "
303 "that already exists in the system. The lifecycle of the "
304 "Service is separate from that of the Process. \"Exeutes as "
305 "Independent Process\" indicates that the Service is "
306 "responsible for the lifecycle of the Process. When the "
307 "Service is started, the Process is created. For example, "
308 "ServletEngines can run \"InProcess\" within the existing "
309 "Apache processes or \"OutOfProcess\" in its own servlet "
310 "engine process. In this case the Apache process would "
311 "communicate with the servlet engine process based on the "
312 "content of the request. The association may be many to "
313 "many."),
314 ValueMap {"0", "1", "2", "3"},
315 Values {"Unknown", "Other", "Executes in Existing Process",
316 tony 1.1 "Executes as Independent Process" } ]
317 uint16 ExecutionType;
318 };
319
320 // ===================================================================
321 // Thread
322 // ===================================================================
323 [Version ("2.7.0"), Description (
324 "Threads represent the ability to execute units of a Process or "
325 "task in parallel. A Process can have many Threads, each of "
326 "which is weak to the Process.") ]
327 class CIM_Thread : CIM_EnabledLogicalElement {
328
329 [Key, Propagated ("CIM_Process.CSCreationClassName"),
330 Description (
331 "The scoping ComputerSystem's CreationClassName."),
332 MaxLen (256) ]
333 string CSCreationClassName;
334
335 [Key, Propagated ("CIM_Process.CSName"), Description (
336 "The scoping ComputerSystem's Name."),
337 tony 1.1 MaxLen (256) ]
338 string CSName;
339
340 [Key, Propagated ("CIM_Process.OSCreationClassName"),
341 Description (
342 "The scoping OperatingSystem's CreationClassName."),
343 MaxLen (256) ]
344 string OSCreationClassName;
345
346 [Key, Propagated ("CIM_Process.OSName"), Description (
347 "The scoping OperatingSystem's Name."),
348 MaxLen (256) ]
349 string OSName;
350
351 [Key, Propagated ("CIM_Process.CreationClassName"), Description (
352 "The scoping Process' CreationClassName."),
353 MaxLen (256) ]
354 string ProcessCreationClassName;
355
356 [Key, Propagated ("CIM_Process.Handle"), Description (
357 "The scoping Process' Handle."),
358 tony 1.1 MaxLen (256) ]
359 string ProcessHandle;
360
361 [Key, Description (
362 "CreationClassName indicates the name of the class or the "
363 "subclass used in the creation of an instance. When used "
364 "with the other key properties of this class, this property "
365 "allow all instances of this class and its subclasses to be "
366 "uniquely identified."),
367 MaxLen (256) ]
368 string CreationClassName;
369
370 [Key, Description (
371 "A string used to identify the Thread."),
372 MaxLen (256) ]
373 string Handle;
374
375 [Description (
376 "Priority indicates the urgency or importance of execution "
377 "of a Thread. A Thread may have a different priority than "
378 "its owning Process. If this information is not available "
379 tony 1.1 "for a Thread, a value of 0 should be used.") ]
380 uint32 Priority;
381
382 [Description (
383 "Indicates the current operating condition of the Thread. "
384 "Values include ready (2), running (3), and blocked (4), "
385 "among others. The majority of the enumerated values are "
386 "obvious. However, a few require additional explanation:\n"
387 "7 (Ready but Relinquished Processor) describes that a "
388 "thread is in the Ready state, but has voluntarily "
389 "relinquished execution time to other threads. For example, "
390 "this state may indicate a problem when the relinquishing "
391 "thread is not handling items on its queues. If these "
392 "semantics cannot be detected, the thread should report its "
393 "state as 2 (\"Ready\").\n"
394 "8 (Hung) indicates that a thread is not responding."),
395 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8"},
396 Values {"Unknown", "Other", "Ready", "Running", "Blocked",
397 "Suspended Blocked", "Suspended Ready",
398 "Ready But Relinquished Processor", "Hung"} ]
399 uint16 ExecutionState;
400 tony 1.1
401 [Description (
402 "Time in kernel mode, in milliseconds. If this information "
403 "is not available, a value of 0 should be used."),
404 Units ("MilliSeconds") ]
405 uint64 KernelModeTime;
406
407 [Description (
408 "Time in user mode, in milliseconds. If this information is "
409 "not available, a value of 0 should be used."),
410 Units ("MilliSeconds") ]
411 uint64 UserModeTime;
412 };
413
414
415 // ===================================================================
416 // ProcessThread
417 // ===================================================================
418 [Association, Aggregation, Composition, Version ("2.7.0"),
419 Description (
420 "A link between a Process and the Thread(s) running in the "
421 tony 1.1 "context of this Process.") ]
422 class CIM_ProcessThread : CIM_Component {
423
424 [Aggregate, Override ("GroupComponent"), Min (1), Max (1),
425 Description (
426 "The Process.") ]
427 CIM_Process REF GroupComponent;
428
429 [Override ("PartComponent"), Weak, Description (
430 "The Thread running in the context of the Process.") ]
431 CIM_Thread REF PartComponent;
432 };
433
434
435 // ===================================================================
436 // JobSettingData
437 // ===================================================================
438 [Experimental, Version ("2.7.1000"), Description (
439 "JobSettingData represents job characteristics and scheduling "
440 "information for a CIM_Job. The settings may be applied to a "
441 "job handling Service, a JobQueue or other destination to which "
442 tony 1.1 "jobs are submitted, and/or to individual CIM_Jobs. The "
443 "applicability of the settings are defined using the "
444 "ElementSettingData relationship. Since the Settings may be "
445 "defined in several contexts and applied to many types of "
446 "elements, this class is defined as a subclass of SettingData, "
447 "versus ScopedSettingData.") ]
448 class CIM_JobSettingData : CIM_SettingData {
449
450 [Write, Description (
451 "Number of times that a Job should be run. A value of 1 "
452 "indicates that the Job is NOT recurring, while any non-zero "
453 "value indicates a limit to the number of times that the Job "
454 "will recur. Zero indicates that there is no limit to the "
455 "number of times that the Job can be processed, but that it "
456 "is terminated either AFTER the UntilTime, or by manual "
457 "intervention. By default, a Job is processed once."),
458 ModelCorrespondence {"CIM_Job.JobRunTimes"} ]
459 uint32 JobRunTimes = 1;
460
461 [Write, Description (
462 "The month during which a Job should be processed. Specify "
463 tony 1.1 "0 for January, 1 for February, and so on."),
464 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
465 "10", "11"},
466 Values {"January", "February", "March", "April", "May", "June",
467 "July", "August", "September", "October", "November",
468 "December"},
469 ModelCorrespondence {"CIM_Job.RunMonth",
470 "CIM_JobSettingData.RunDay",
471 "CIM_JobSettingData.RunDayOfWeek",
472 "CIM_JobSettingData.RunStartInterval"} ]
473 uint8 RunMonth;
474
475 [Write, Description (
476 "The day in the month on which a Job should be processed. "
477 "There are two different interpretations for this property, "
478 "depending on the value of RunDayOfWeek. In one case, "
479 "RunDay defines the day-in-month on which the Job is "
480 "processed. This interpretation is used when the "
481 "RunDayOfWeek is 0. A positive or negative integer "
482 "indicates whether the RunDay should be calculated from the "
483 "beginning or the end of the month. For example, 5 "
484 tony 1.1 "indicates the fifth day in RunMonth and -1 indicates the "
485 "last day in the RunMonth.\n"
486 "\n"
487 "When RunDayOfWeek is not 0, RunDay is the day-in-month on "
488 "which the Job is processed, defined in conjunction with "
489 "RunDayOfWeek. For example, if RunDay is 15 and "
490 "RunDayOfWeek is Saturday, then the Job is processed on the "
491 "first Saturday on or AFTER the 15th day in the RunMonth "
492 "(e.g., the third Saturday in the month). If RunDay is 20 "
493 "and RunDayOfWeek is -Saturday, then this indicates the "
494 "first Saturday on or BEFORE the 20th day in the RunMonth. "
495 "If RunDay is -1 and RunDayOfWeek is -Sunday, then this "
496 "indicates the last Sunday in the RunMonth."),
497 MinValue (-31), MaxValue (31),
498 ModelCorrespondence {"CIM_Job.RunDay",
499 "CIM_JobSettingData.RunMonth",
500 "CIM_JobSettingData.RunDayOfWeek",
501 "CIM_JobSettingData.RunStartInterval"} ]
502 sint8 RunDay;
503
504 [Write, Description (
505 tony 1.1 "Positive or negative integer used in conjunction with "
506 "RunDay to indicate the day of the week on which a Job is "
507 "processed. RunDayOfWeek is set to 0 to indicate an exact "
508 "day of the month, such as March 1. A positive integer "
509 "(representing Sunday, Monday, ..., Saturday) means that the "
510 "day of week is found on or AFTER the specified RunDay. A "
511 "negative integer (representing -Sunday, -Monday, ..., "
512 "-Saturday) means that the day of week is found on or BEFORE "
513 "the RunDay."),
514 ValueMap {"-7", "-6", "-5", "-4", "-3", "-2", "-1", "0", "1",
515 "2", "3", "4", "5", "6", "7" },
516 Values {"-Saturday", "-Friday", "-Thursday", "-Wednesday",
517 "-Tuesday", "-Monday", "-Sunday", "ExactDayOfMonth",
518 "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
519 "Friday", "Saturday" },
520 ModelCorrespondence {"CIM_Job.RunDayOfWeek",
521 "CIM_JobSettingData.RunMonth", "CIM_JobSettingData.RunDay",
522 "CIM_JobSettingData.RunStartInterval"} ]
523 sint8 RunDayOfWeek;
524
525 [Write, Description (
526 tony 1.1 "The time interval after midnight when a Job should be "
527 "processed. For example,\n"
528 " 00000000020000.000000:000\n"
529 "indicates that the Job should be run on or after two "
530 "o'clock, local time or UTC time (distinguished using the "
531 "LocalOrUtcTime property."),
532 ModelCorrespondence {"CIM_Job.RunStartInterval",
533 "CIM_JobSettingData.RunMonth", "CIM_JobSettingData.RunDay",
534 "CIM_JobSettingData.RunDayOfWeek",
535 "CIM_JobSettingData.LocalOrUtcTime"} ]
536 datetime RunStartInterval;
537
538 [Write, Description (
539 "This property indicates whether the times represented in "
540 "the RunStartInterval and UntilTime properties represent "
541 "local times or UTC times. Time values are synchronized "
542 "worldwide by using the enumeration value 2, \"UTC Time\"."),
543 ValueMap {"1", "2"},
544 Values {"Local Time", "UTC Time"} ]
545 uint16 LocalOrUtcTime;
546
547 tony 1.1 [Write, Description (
548 "The setting for a Job's UntilTime - the time after which an "
549 "executing Job should be stopped or not be allowed to "
550 "proceed. This may be represented by an actual date and "
551 "time, or an interval relative to the ScheduledStartTime. A "
552 "value of all nines indicates that the Job can run "
553 "indefinitely."),
554 ModelCorrespondence {"CIM_Job.UntilTime",
555 "CIM_JobSettingData.LocalOrUtcTime"} ]
556 datetime UntilTime;
557
558 [Write, Description (
559 "The setting for a Job's Notify property - the user/email to "
560 "be notified upon a scheduled Job's completion or failure."),
561 ModelCorrespondence {"CIM_Job.Notify"} ]
562 string Notify;
563
564 [Write, Description (
565 "The setting for a Job's Owner property - the user, service "
566 "method, etc. that defined this setting data and causes the "
567 "Job to be created."),
568 tony 1.1 ModelCorrespondence {"CIM_Job.Owner"} ]
569 string Owner;
570
571 [Write, Description (
572 "Indicates the urgency or importance of execution of the "
573 "Job, as specified by the user or defining entity. The "
574 "actual Priority is found in the CIM_Job instance, "
575 "associated via the ElementSettingData relationship. Unless "
576 "otherwise specified, a lower number indicates a higher "
577 "priority."),
578 ModelCorrespondence {"CIM_Job.Priority"} ]
579 uint32 Priority;
580
581 [Write, Description (
582 "Indicates whether or not the Job should be automatically "
583 "deleted upon completion. Note that the 'completion' of a "
584 "recurring job is defined by its JobRunTimes or UntilTime "
585 "properties, OR when the Job is terminated by manual "
586 "intervention."),
587 ModelCorrespondence {"CIM_Job.DeleteOnCompletion"} ]
588 boolean DeleteOnCompletion;
589 tony 1.1
590 [Write, Description (
591 "Describes the recovery setting if the Job does not "
592 "unsuccessfully complete. The possible values are:\n"
593 "0 = \"Unknown\", meaning it is unknown as to what recovery "
594 "action to take\n"
595 "1 = \"Other\", indicating that the recovery action will be "
596 "specified in the property, OtherRecoveryAction\n"
597 "2 = \"Do Not Continue\", meaning stop the execution of the "
598 "job and appropriately update its status\n"
599 "3 = \"Continue With Next Job\", meaning continue with the "
600 "next job in the queue\n"
601 "4 = \"Re-run Job\", indicating that the job should be re-run\n"
602 "5 = \"Run Recovery Job\", meaning run the Job associated "
603 "using the RecoveryJob relationship. Note that the recovery "
604 "Job MUST already be on the queue from which it will run."),
605 ValueMap {"0", "1", "2", "3", "4", "5"},
606 Values {"Unknown", "Other", "Do Not Continue",
607 "Continue With Next Job", "Re-run Job", "Run Recovery Job"},
608 ModelCorrespondence {"CIM_JobSettingData.OtherRecoveryAction",
609 "CIM_Job.RecoveryAction"} ]
610 tony 1.1 uint16 RecoveryAction;
611
612 [Write, Description (
613 "A string describing the recovery action when the instance's "
614 "RecoveryAction property is 1 (\"Other\")."),
615 ModelCorrespondence {"CIM_JobSettingData.RecoveryAction",
616 "CIM_Job.OtherRecoveryAction"} ]
617 string OtherRecoveryAction;
618 };
619
620
621
622
623 // ===================================================================
624 // OwningJobElement
625 // ===================================================================
626 [Association, Version ("2.7.0"), Description (
627 "OwningJobElement represents an association between a Job and "
628 "the ManagedElement responsible for the creation of the Job. "
629 "This association may not be possible, given that the execution "
630 "of jobs can move between systems and that the lifecycle of the "
631 tony 1.1 "creating entity may not persist for the total duration of the "
632 "job. However, this can be very useful information when "
633 "available. This association defines a more specific 'owner' "
634 "than is provided by the CIM_Job.Owner string."),
635 ModelCorrespondence {"CIM_Job.Owner"} ]
636 class CIM_OwningJobElement {
637
638 [Key, Max (1), Description (
639 "The ManagedElement responsible for the creation of the "
640 "Job.") ]
641 CIM_ManagedElement REF OwningElement;
642
643 [Key, Description (
644 "The Job created by the ManagedElement.") ]
645 CIM_Job REF OwnedElement;
646 };
647
648
649 // ===================================================================
650 // AffectedJobElement
651 // ===================================================================
652 tony 1.1 [Association, Version ("2.7.0"), Description (
653 "AffectedJobElement represents an association between a Job and "
654 "the ManagedElement(s) that may be affected by its execution. "
655 "It may not be feasible for the Job to describe all of the "
656 "affected elements. The main purpose of this association is to "
657 "provide information when a Job requires exclusive use of the "
658 "'affected' ManagedElment(s) or when describing that side "
659 "effects may result.") ]
660 class CIM_AffectedJobElement {
661
662 [Key, Description (
663 "The ManagedElement affected by the execution of the Job.") ]
664 CIM_ManagedElement REF AffectedElement;
665
666 [Key, Description (
667 "The Job that is affecting the ManagedElement.") ]
668 CIM_Job REF AffectingElement;
669
670 [Description (
671 "An enumeration describing the 'effect' on the "
672 "ManagedElement. This array corresponds to the "
673 tony 1.1 "OtherElementEffectsDescriptions array, where the latter "
674 "provides details related to the high-level 'effects' "
675 "enumerated by this property. Additional detail is required "
676 "if the ElementEffects array contains the value 1, "
677 "\"Other\"."),
678 ValueMap {"0", "1", "2", "3", "4"},
679 Values {"Unknown", "Other", "Exclusive Use",
680 "Performance Impact", "Element Integrity"},
681 ArrayType ("Indexed"),
682 ModelCorrespondence {
683 "CIM_AffectedJobElement.OtherElementEffectsDescriptions"} ]
684 uint16 ElementEffects[];
685
686 [Description (
687 "Provides details for the 'effect' at the corresponding "
688 "array position in ElementEffects. This information is "
689 "required whenever ElementEffects contains the value 1 "
690 "(\"Other\")."),
691 ArrayType ("Indexed"),
692 ModelCorrespondence {"CIM_AffectedJobElement.ElementEffects"} ]
693 string OtherElementEffectsDescriptions[];
694 tony 1.1 };
695
696
697 // ===================================================================
698 // ProcessOfJob
699 // ===================================================================
700 [Association, Aggregation, Composition, Version ("2.7.0"),
701 Description (
702 "ProcessOfJob describes that the referenced Process is the "
703 "result of the execution of the Job. A Job may cause multiple "
704 "Processes to run, perhaps on different operating systems. "
705 "This is allowed by the '*' cardinality of the Process "
706 "reference. Note that a Process can result from only one Job - "
707 "hence, the '0..1' cardinality on Job.") ]
708 class CIM_ProcessOfJob : CIM_Component {
709
710 [Aggregate, Override ("GroupComponent"), Description (
711 "Execution of the Job results in the creation of the Process "
712 "referenced as PartComponent. The Job aggregates the "
713 "Process(es) that are created when it is executed.") ]
714 CIM_Job REF GroupComponent;
715 tony 1.1
716 [Override ("PartComponent"), Description (
717 "The Process that results from the execution of the Job.") ]
718 CIM_Process REF PartComponent;
719 };
720
721
722 // ===================================================================
723 // JobDestination
724 // ===================================================================
725 [Version ("2.7.0"), Description (
726 "JobDestination is an EnabledLogicalElement representing where "
727 "a Job is submitted for processing. It can refer to a queue "
728 "that contains zero or more Jobs, such as a print queue "
729 "containing print Jobs. JobDestinations are hosted on Systems, "
730 "similar to the way that Services are hosted on Systems. Also, "
731 "they may be enabled/disabled similar to Services.") ]
732 class CIM_JobDestination : CIM_EnabledLogicalElement {
733
734 [Key, Propagated ("CIM_System.CreationClassName"), Description (
735 "The scoping System's CreationClassName."),
736 tony 1.1 MaxLen (256) ]
737 string SystemCreationClassName;
738
739 [Key, Propagated ("CIM_System.Name"), Description (
740 "The scoping System's Name."),
741 MaxLen (256) ]
742 string SystemName;
743
744 [Key, Description (
745 "CreationClassName indicates the name of the class or the "
746 "subclass used in the creation of an instance. When used "
747 "with the other key properties of this class, this property "
748 "allows all instances of this class and its subclasses to be "
749 "uniquely identified."),
750 MaxLen (256) ]
751 string CreationClassName;
752
753 [Key, Override ("Name"), Description (
754 "The inherited Name serves as key of a JobDestination "
755 "instance in a System."),
756 MaxLen (256) ]
757 tony 1.1 string Name;
758 };
759
760
761 // ===================================================================
762 // HostedJobDestination
763 // ===================================================================
764 [Association, Version ("2.7.1000"), Description (
765 "An association between a JobDestination and a System on which "
766 "it resides. The cardinality of this association is "
767 "1-to-many. A System may host many Job queues. Job "
768 "Destinations are weak with respect to their hosting System. "
769 "Heuristic: A JobDestination is hosted on the System where the "
770 "LogicalDevices, SoftwareFeatures or Services that implement/ "
771 "provide the JobDestination are located.") ]
772 class CIM_HostedJobDestination : CIM_HostedDependency {
773
774 [Override ("Antecedent"), Min (1), Max (1), Description (
775 "The hosting System.") ]
776 CIM_System REF Antecedent;
777
778 tony 1.1 [Override ("Dependent"), Weak, Description (
779 "The JobDestination hosted on the System.") ]
780 CIM_JobDestination REF Dependent;
781 };
782
783
784 // ===================================================================
785 // JobDestinationJobs
786 // ===================================================================
787 [Association, Version ("2.6.0"), Description (
788 "An association describing where a Job is submitted for "
789 "processing, ie to which JobDestination.") ]
790 class CIM_JobDestinationJobs : CIM_Dependency {
791
792 [Override ("Antecedent"), Max (1), Description (
793 "The JobDestination, possibly a queue.") ]
794 CIM_JobDestination REF Antecedent;
795
796 [Override ("Dependent"), Description (
797 "The Job that is in the Job queue/Destination.") ]
798 CIM_Job REF Dependent;
799 tony 1.1 };
800
801 // ===================================================================
802 // JobProcessingStatistics
803 // ===================================================================
804 [Experimental, Version ("2.7.1000"), Description (
805 "This class records the completion statistics (such as "
806 "ElapsedTime) and other information for its associated Job. "
807 "The class will be extended in a future release to include "
808 "statistics regarding resource utilization. Note that there "
809 "may be many instances of this class if the Job is recurring "
810 "(i.e., if its JobRunTimes property is not 1).") ]
811 class CIM_JobProcessingStatistics : CIM_StatisticalData {
812
813 [Description (
814 "The time that this invocation of the Job was started. This "
815 "SHOULD be represented by an actual date and time, and not "
816 "in interval format."),
817 ModelCorrespondence {"CIM_Job.StartTime"} ]
818 datetime StartTime;
819
820 tony 1.1 [Description (
821 "The total execution time of the Job. This MUST be "
822 "represented in interval format."),
823 ModelCorrespondence {"CIM_Job.ElapsedTime"} ]
824 datetime ElapsedTime;
825
826 [Description (
827 "Indicates the urgency or importance of execution of the "
828 "Job. The lower the number, the higher the priority."),
829 ModelCorrespondence {"CIM_Job.Priority"} ]
830 uint32 Priority;
831
832 [Description (
833 "The percentage of the job that was completed at the time "
834 "that the Job terminated. Note that this value will be less "
835 "than 100 if the Job terminated prematurely."),
836 Units ("Percent"), MinValue (0), MaxValue (101),
837 ModelCorrespondence {"CIM_Job.PercentComplete"} ]
838 uint16 PercentComplete;
839
840 [Description (
841 tony 1.1 "A vendor specific error code related to the processing of "
842 "the Job. This MUST be set to zero if the Job completed "
843 "without error."),
844 ModelCorrespondence {"CIM_Job.ErrorCode",
845 "CIM_JobProcessingStatistics.ErrorDescription"} ]
846 uint16 ErrorCode;
847
848 [Description (
849 "A free form string containing the vendor error description "
850 "for the property, ErrorCode."),
851 ModelCorrespondence {"CIM_Job.ErrorDescription",
852 "CIM_JobProcessingStatistics.ErrorCode"} ]
853 string ErrorDescription;
854 };
855
856 // ===================================================================
857 // JobQueue
858 // ===================================================================
859 [Experimental, Version ("2.7.1000"), Description (
860 "Status and configuration of a JobQueue. Jobs are held on a "
861 "queue, and can move from queue to queue until being "
862 tony 1.1 "processed.") ]
863 class CIM_JobQueue : CIM_JobDestination {
864
865 [Description (
866 "Provides queue-specific status information, beyond the "
867 "ManagedSystemElement.OperationalStatus property. This "
868 "property further qualifies the status of the queue, or "
869 "indicates a secondary condition (e.g. queue full)."),
870 ValueMap {"0", "1", "2", "3"},
871 Values {"Unknown", "Other", "No Additional Status",
872 "Queue Full"},
873 ModelCorrespondence {"CIM_JobQueue.QueueStatusInfo"} ]
874 uint16 QueueStatus;
875
876 [Description (
877 "Provides a textual explanation for the status of the "
878 "queue. Information about both QueueStatus and the "
879 "OperationalStatus property (inherited from "
880 "ManagedSystemElement) may be described in QueueStatusInfo. "
881 "Note, however, that OperationalStatus' Descriptions (if "
882 "available) MUST be provided in the StatusDescriptions "
883 tony 1.1 "array, inherited from ManagedSystemElement. This is where "
884 "management clients will expect to locate this information."),
885 ModelCorrespondence {"CIM_JobQueue.QueueStatus"} ]
886 string QueueStatusInfo;
887
888 [Description (
889 "Specifies the priority that will be assigned to a new Job "
890 "being submitted to this queue, if the Job does not "
891 "explicitly specify a priority. Note that lower numbers "
892 "indicate higher priorities. The default value of 0xFFFF is "
893 "the lowest priority.") ]
894 uint32 DefaultJobPriority = 65535;
895
896 [Description (
897 "Specifies the maximum time (using a datetime interval "
898 "format) that a Job can remain on this Queue before "
899 "completing. If the MaxTimeOnQueue property is exceeded, "
900 "then the Job SHOULD be removed from the Queue. A value of "
901 "0 (the default) indicates that there is no time limit.") ]
902 datetime MaxTimeOnQueue = "00000000000000.000000:000";
903
904 tony 1.1 [Description (
905 "Specifies the maximum number of Jobs that can reside on "
906 "this Queue. A value of 0 (the default) indicates that "
907 "there is no time limit.") ]
908 uint32 MaxJobsOnQueue = 0;
909
910 [Description (
911 "Specifies the maximum number of milliseconds of CPU time "
912 "that a Job queued to this destination can consume to "
913 "complete its execution."),
914 Units ("MilliSeconds") ]
915 uint32 MaxJobCPUTime;
916 };
917
918
919 // ===================================================================
920 // QueueStatisticalData
921 // ===================================================================
922 [Experimental, Version ("2.7.1000"), Description (
923 "The statistical data of a JobQueue. An instance of this class "
924 "is associated with a specific JobQueue using the inherited "
925 tony 1.1 "ElementStatisticalData relationship.") ]
926 class CIM_QueueStatisticalData : CIM_StatisticalData {
927
928 [Description (
929 "The number of Jobs whose MaxTimeOnQueue was exceeded. This "
930 "would cause the Job to be removed from the Queue, and not "
931 "processed to completion. This count begins at the time "
932 "that the Queue was started/initialized."),
933 Counter ]
934 uint64 JobsMaxTimeExceeded;
935
936 [Description (
937 "Specifies the current number of Jobs that are in the "
938 "running state, for the related Queue."),
939 Gauge ]
940 uint32 RunningJobs;
941
942 [Description (
943 "Specifies the current number of Jobs that are waiting to be "
944 "put in the running state, for the related Queue."),
945 Gauge ]
946 tony 1.1 uint32 WaitingJobs;
947 };
948
949 // ==================================================================
950 // RecoveryJob
951 // ==================================================================
952 [Association, Experimental, Version ("2.7.1000"), Description (
953 "CIM_RecoveryJob specifies the Job that should be run to clean "
954 "up or recover from the unsuccessful completion of the "
955 "Dependent Job.") ]
956 class CIM_RecoveryJob : CIM_Dependency {
957
958 [Override ("Antecedent"), Description (
959 "Antecedent represents the recovery Job.") ]
960 CIM_Job REF Antecedent;
961
962 [Override ("Dependent"), Description (
963 "Dependent represents the Job which may not successfully "
964 "complete and which is dependent on the 'RecoveryJob' for "
965 "cleanup.") ]
966 CIM_Job REF Dependent;
967 tony 1.1 };
968
969 // ===================================================================
970 // end of file
971 // ===================================================================
|