Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
User's Guide
Version 2 Release 6
GC30-4106-10
Remote Management Agent
User's Guide
Version 2 Release 6
GC30-4106-10
Note
Before using this information and the product it supports, be sure to read the general information under “Notices” on page
257.
| August 2010
| This edition applies to Version 2 Release 6 of the licensed program IBM Remote Management Agent (program
| number 5639-FF1) and to all subsequent releases and modifications until otherwise indicated in new editions.
| This edition replaces GC30-4106-09.
| Current versions of Retail Store Solutions documentation are available on the IBM Retail Store Solutions Web site at
| www.ibm.com/solutions/retail/store/support. Click Publications.
| A form for reader's comments is also provided at the back of this publication. If the form has been removed, address
| your comments to:
| IBM Corporation
| Retail Store Solutions Information Development
| Department ZBDA
| PO Box 12195
| Research Triangle Park, North Carolina 27709 USA
| When you send information to IBM, you grant IBM a nonexclusive right to use or distribute whatever information you
| supply in any way it believes appropriate without incurring any obligation to you.
© Copyright IBM Corporation 2004, 2010.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Contents
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Contents v
| JMX Browser Changes for Local Mode Embedded Agents . . . . . . . 158
RMA event infrastructure . . . . . . . . . . . . . . . . . . . . . 159
RMA events (RtlNotifications) . . . . . . . . . . . . . . . . . . 160
EventControlMBean . . . . . . . . . . . . . . . . . . . . . 161
NotificationProcessor . . . . . . . . . . . . . . . . . . . . . 162
MgmtNotificationControlMBean . . . . . . . . . . . . . . . . . 162
Logging configuration and forwarding . . . . . . . . . . . . . . . . 162
Inventory . . . . . . . . . . . . . . . . . . . . . . . . . . 163
CIM Implementation . . . . . . . . . . . . . . . . . . . . . . 163
CIM Adapter MBean . . . . . . . . . . . . . . . . . . . . . 164
CIMEventMapper interface . . . . . . . . . . . . . . . . . . . 165
CIM configuration . . . . . . . . . . . . . . . . . . . . . . 167
File Transfer . . . . . . . . . . . . . . . . . . . . . . . . . 168
FileTransferConnection . . . . . . . . . . . . . . . . . . . . 169
Managing file transfer implementations . . . . . . . . . . . . . . 170
Storage . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Monitor policy . . . . . . . . . . . . . . . . . . . . . . . . . 171
RMA Software Distribution . . . . . . . . . . . . . . . . . . . . 172
RMA Package Distributor MBean . . . . . . . . . . . . . . . . . 174
Software Distribution Policy . . . . . . . . . . . . . . . . . . . 178
Diagnostic Data Capture . . . . . . . . . . . . . . . . . . . . . 184
DataCaptureMBean. . . . . . . . . . . . . . . . . . . . . . 185
DataCaptureMBeanSupport . . . . . . . . . . . . . . . . . . . 187
Data Capture Policy . . . . . . . . . . . . . . . . . . . . . 188
RMADataCaptureMBean . . . . . . . . . . . . . . . . . . . . 189
DataCaptureManagerMBean . . . . . . . . . . . . . . . . . . 189
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Trademarks. . . . . . . . . . . . . . . . . . . . . . . . . . 257
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Contents vii
viii RMA V2R6 User's Guide
Figures
1. RMA infrastructure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2. Small enterprise deployment scenario . . . . . . . . . . . . . . . . . . . . . . . 10
3. Medium enterprise deployment scenario . . . . . . . . . . . . . . . . . . . . . . 11
| 4. Lock icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
5. IBM Remote Management Agent components for a Windows installation . . . . . . . . . . 22
6. Network interface panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7. Security mode panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8. Summary panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
9. Post installation window . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
10. Summary information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
11. Remove installation directory dialog . . . . . . . . . . . . . . . . . . . . . . . . 37
12. Remove user directory dialog . . . . . . . . . . . . . . . . . . . . . . . . . . 38
13. Java logging hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
14. Sample Windows Application event . . . . . . . . . . . . . . . . . . . . . . . . 57
15. Sample Windows Application event viewed in IBM Director . . . . . . . . . . . . . . . 58
16. IBM Director Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
17. Dynamic group editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
18. Display System Attributes panel . . . . . . . . . . . . . . . . . . . . . . . . . 65
19. Discovery Preferences panel . . . . . . . . . . . . . . . . . . . . . . . . . . 67
20. Define Master Agent Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
21. Store Authorization Management task window . . . . . . . . . . . . . . . . . . . . 72
22. Store Authorization Management credentials dialog . . . . . . . . . . . . . . . . . . 73
23. Select Client Authentication Key File . . . . . . . . . . . . . . . . . . . . . . . 73
24. Inventory collection panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
25. Viewing inventory browser . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
26. Simple Event Filter Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
27. Event filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
28. Newly created Event Action Plan appears in the Tasks frame . . . . . . . . . . . . . . 77
29. RMA Software Distribution task . . . . . . . . . . . . . . . . . . . . . . . . . 80
30. Install Package Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
31. Operating system settings . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
32. RMA Software Distribution File Selection panel . . . . . . . . . . . . . . . . . . . . 83
33. Package Commands dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
34. RMA Software Distribution Add Program dialog. . . . . . . . . . . . . . . . . . . . 84
35. RMA Software Distribution progress panel . . . . . . . . . . . . . . . . . . . . . 86
36. Software package subtasks . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
37. 4690 Package Commands dialog . . . . . . . . . . . . . . . . . . . . . . . . . 87
38. 4690 Package Commands dialog . . . . . . . . . . . . . . . . . . . . . . . . . 88
39. 4690 Create Command dialog . . . . . . . . . . . . . . . . . . . . . . . . . . 89
40. 4690 Create Command (manually) dialog . . . . . . . . . . . . . . . . . . . . . . 89
41. Re-IPL dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
42. Re-IPL window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
43. Custom ASM Package dialog . . . . . . . . . . . . . . . . . . . . . . . . . . 91
44. ASM product state dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
45. Product options dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
46. Editing a command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
47. Import RMA Software Distribution Package dialog. . . . . . . . . . . . . . . . . . . 94
48. Export RMA Software Distribution Package dialog. . . . . . . . . . . . . . . . . . . 94
49. JMX tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
50. Properties tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
51. Set Value dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
52. Methods tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
53. Unsupported Method dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
© Copyright IBM Corp. 2004, 2010 ix
54. Method Execution dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
55. Saved JMX Method task . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
56. Handler levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
57. Logger levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
58. Resource Monitor task . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
59. Selecting Disk Utilization resource . . . . . . . . . . . . . . . . . . . . . . . . 104
60. Selecting Individual Threshold . . . . . . . . . . . . . . . . . . . . . . . . . 105
61. Threshold configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
62. Example Threshold Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . 107
63. All Available Thresholds view . . . . . . . . . . . . . . . . . . . . . . . . . . 108
64. Selecting Use Disk Space resource . . . . . . . . . . . . . . . . . . . . . . . 108
65. Selecting Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
66. Creating a new record . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
67. Example Recording Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . 110
68. All Available Recordings view . . . . . . . . . . . . . . . . . . . . . . . . . . 110
69. JMX Browser task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
70. Selecting Add User-Defined Resource Monitor . . . . . . . . . . . . . . . . . . . 112
71. Creating a new user-defined resource monitor . . . . . . . . . . . . . . . . . . . 112
72. User-defined Monitors view . . . . . . . . . . . . . . . . . . . . . . . . . . 113
73. Retail Peripheral Management Console (MSR selected) . . . . . . . . . . . . . . . . 114
74. Retail Peripheral Management Console (using Group by Model) . . . . . . . . . . . . . 117
75. Peripheral Inventory Query Browser for POS Printer . . . . . . . . . . . . . . . . . 117
76. Data Capture Policy Manager task . . . . . . . . . . . . . . . . . . . . . . . . 118
77. Data Capture Policy Manager frame . . . . . . . . . . . . . . . . . . . . . . . 119
78. Data Capture Policy Manager File Menu. . . . . . . . . . . . . . . . . . . . . . 120
79. Data Capture Policy Manager File-Close Dialog . . . . . . . . . . . . . . . . . . . 120
80. Capture Policy Manager Help Menu . . . . . . . . . . . . . . . . . . . . . . . 121
81. Data Capture Policy Manager Policy Group Dialog . . . . . . . . . . . . . . . . . . 122
82. Data Capture Policy Group Context Menu . . . . . . . . . . . . . . . . . . . . . 122
83. Data Capture Policy Create/Rename Dialog . . . . . . . . . . . . . . . . . . . . 123
84. Data Capture Policy Context Menu. . . . . . . . . . . . . . . . . . . . . . . . 124
85. Data Capture All Policies Group Context Menu . . . . . . . . . . . . . . . . . . . 125
86. Data Capture Policy Manager Export Dialog . . . . . . . . . . . . . . . . . . . . 126
87. Data Capture Policy Manager Import Dialog . . . . . . . . . . . . . . . . . . . . 127
88. Data Capture Policy Manager Find Dialog . . . . . . . . . . . . . . . . . . . . . 127
89. Data Capture Device Type right-click context menu. . . . . . . . . . . . . . . . . . 128
90. Data Capture Policy List Folder right-click Context Menu. . . . . . . . . . . . . . . . 128
91. Data Capture Implementation Group right-click context menu . . . . . . . . . . . . . . 130
92. Data Capture Implementation Creation Dialog. . . . . . . . . . . . . . . . . . . . 130
93. Data Capture Implementation right-click Context Menu . . . . . . . . . . . . . . . . 131
94. IBM Director Console with Policy Subtasks . . . . . . . . . . . . . . . . . . . . . 132
95. IBM Director Console with associated Policy Subtasks . . . . . . . . . . . . . . . . 133
96. Policy Subtask Association right-click Context Menu . . . . . . . . . . . . . . . . . 134
97. Policy Invocation Status Dialog . . . . . . . . . . . . . . . . . . . . . . . . . 135
98. Policy Invocation Status Dialog - Loading Message. . . . . . . . . . . . . . . . . . 135
99. Policy Invocation Status Dialog - Refresh . . . . . . . . . . . . . . . . . . . . . 136
100. Policy Invocation Status Dialog - Dialog Context Menu . . . . . . . . . . . . . . . . 137
101. Policy Invocation Status frame - Transferring Message . . . . . . . . . . . . . . . . 138
102. Power management shutdown and restart selections . . . . . . . . . . . . . . . . . 139
103. Power management power on selections . . . . . . . . . . . . . . . . . . . . . 139
104. Power management job example . . . . . . . . . . . . . . . . . . . . . . . . 140
105. TWGRas.properties file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
106. Mid-level management . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
| 107. Embedded Agent model (Prior to V2R6) . . . . . . . . . . . . . . . . . . . . . . 156
| 108. (V2R6 or later) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
| 109. Proxy Objectnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Figures xi
xii RMA V2R6 User's Guide
Tables
1. Configuration subdirectory descriptions. . . . . . . . . . . . . . . . . . . . . . .41
2. Agent properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
3. RMI properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4. Event properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
5. Event fetching properties (Master Agent only) . . . . . . . . . . . . . . . . . . . .43
6. Data capture properties . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
7. Java logging levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
8. Configurable logging parameters . . . . . . . . . . . . . . . . . . . . . . . . .49
9. XML definition of the agent configuration file for Windows event log integration . . . . . . . .53
10. Mapping Windows event log definitions to RMA Notifications . . . . . . . . . . . . . . .56
11. Event type to severity mapping . . . . . . . . . . . . . . . . . . . . . . . . .56
12. Managed Object groups . . . . . . . . . . . . . . . . . . . . . . . . . . . .61
13. Retail devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
14. Device states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
15. Import file format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
16. Severity mapping. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
17. Package general information . . . . . . . . . . . . . . . . . . . . . . . . . .80
18. RMA File Transfer task invocation support . . . . . . . . . . . . . . . . . . . . .95
19. Device types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
20. Power management support by Agent type . . . . . . . . . . . . . . . . . . . . . 140
21. Common symptoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
22. IBM Remote Management Agent managed disciplines . . . . . . . . . . . . . . . . 149
23. Logging MBeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
24. Managing file transfer implementations . . . . . . . . . . . . . . . . . . . . . . 170
25. Methods used for managing implementations . . . . . . . . . . . . . . . . . . . . 170
26. Required properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
27. Valid platform names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
28. Valid system states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
29. SoftwarePolicy:Component tag attributes . . . . . . . . . . . . . . . . . . . . . 182
30. SoftwarePolicy:Exec tag attributes . . . . . . . . . . . . . . . . . . . . . . . . 183
31. Policy XML variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
32. javax.management.Notification fields . . . . . . . . . . . . . . . . . . . . . . . 186
33. Common properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
34. RMA File Streaming Properties . . . . . . . . . . . . . . . . . . . . . . . . . 215
35. FTPConnection properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
36. FTPSConnection properties . . . . . . . . . . . . . . . . . . . . . . . . . . 216
37. Logging level functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
38. Log levels with sample log entries . . . . . . . . . . . . . . . . . . . . . . . . 229
39. Inventory tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
40. General properties table. . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
41. Cash Changer Device Capabilities Table. . . . . . . . . . . . . . . . . . . . . . 235
42. Cash Drawer Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . 236
43. Coin Dispenser Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . . 236
44. Check Scanner Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . 236
45. Fiscal Printer Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . 237
46. Hard Totals Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . 237
47. Line Display Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . 238
48. MSR Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . . . 238
49. MICR Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . . . 239
50. PIN Pad Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
51. POS Keyboard Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . 239
52. POS Power Device Capabilities Table. . . . . . . . . . . . . . . . . . . . . . . 239
53. Scale Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . . . . 240
© Copyright IBM Corp. 2004, 2010 xiii
54. Tone Indicator Device Capabilities Table . . . . . . . . . . . . . . . . . . . . . . 240
55. POS Printer General Device Capabilities Table . . . . . . . . . . . . . . . . . . . 240
56. POS Printer Journal Station Capabilities Table . . . . . . . . . . . . . . . . . . . 241
57. POS Printer Receipt Station Capabilities Table . . . . . . . . . . . . . . . . . . . 241
58. POS Printer Slip Station Capabilities Table . . . . . . . . . . . . . . . . . . . . . 242
59. Cash Changer Device Properties Table . . . . . . . . . . . . . . . . . . . . . . 242
60. Cash Drawer Device Properties Table. . . . . . . . . . . . . . . . . . . . . . . 243
61. Check Scanner Device Properties Table . . . . . . . . . . . . . . . . . . . . . . 243
62. Coin Dispenser Device Properties Table . . . . . . . . . . . . . . . . . . . . . . 243
63. Fiscal Printer Device Properties Table. . . . . . . . . . . . . . . . . . . . . . . 243
64. Line Display Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . 243
65. Hard Totals Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . 244
66. Keylock Device Properties Table. . . . . . . . . . . . . . . . . . . . . . . . . 244
67. MSR Device Properties Table. . . . . . . . . . . . . . . . . . . . . . . . . . 244
68. PIN Pad Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . . 244
69. POS Keyboard Device Properties Table . . . . . . . . . . . . . . . . . . . . . . 245
70. POS Power Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . 245
71. Scale Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . . . 245
72. POS Printer Device Properties Table . . . . . . . . . . . . . . . . . . . . . . . 245
73. POS Printer Journal Station Properties Table . . . . . . . . . . . . . . . . . . . . 245
74. POS Printer Receipt Station Properties Table . . . . . . . . . . . . . . . . . . . . 246
75. POS Printer Slip Station Properties Table . . . . . . . . . . . . . . . . . . . . . 246
76. Retail Display Properties Table . . . . . . . . . . . . . . . . . . . . . . . . . 247
To plan and install system management facilities, a working knowledge of the Java
programming language and the Java Management Extensions (JMX) standard is
recommended.
Related publications
The following IBM publications provide additional information on using the IBM
Remote Management Agent. You can download these publications from the IBM
Retail Store Solutions Web site at www.ibm.com/solutions/retail/store/support.
v IBM 4690 OS User's Guide, G362-0542
v IBM 4690 OS Programming Guide, G362-0545
v IBM 4690 OS Communications Programming Reference, G362-0544
v Store Integrator User's Guide, SC30-4085
v Store Integrator Programming Guide, SC30-4084
v Store Integrator Graphical User Interface Programming Guide, GC30-4121
v Data Integration Facility User's Guide, GC30-4077
Providing feedback
Your feedback is important in helping IBM provide accurate and high-quality
information.
To provide feedback:
v Go to http://www.ibm.com/solutions/retail/store. Click Support, then click
Publications. Click the publication comments within the introductory text.
Provide the requested information and your comments. Be sure to include the
name and form number of the document in the [Publication ID] field.
v You can mail your comments to:
IBM Corporation Retail Store Solutions
Information Development Department ZBDA
P.O. Box 12195 Research Triangle Park,
North Carolina 27709 USA
Be sure to include the name and form number of the document.
If applicable, include a reference to the specific location of the text (for example, the
page or table number) on which you are commenting.
Between major revisions of this document, there might be minor technical updates.
The latest version of this document is available on the Retail Store Solutions Web
site at www.ibm.com/solutions/retail/store/support/publications/.
| All changes related to this version are marked with a bar ( | ) revision code.
There is a need for extensive, seamless, and complete integration with the rest of
the infrastructure, including elements that are located within the store, as well as
those at the enterprise. It is imperative that these devices remain in service and
function as intended. When devices do fail, the failures must be detected and
promptly corrected, or the failures be predicted before they occur. This presents a
strong need for manageability.
Management solutions
When creating a complete management solution, several components are required.
IBM Retail Store Solutions supports customers ranging from the small and medium
business (SMB) to the large enterprise, and provides two complete solutions; each
fitting a different segment. The SMB solution is based around IBM Director, and the
solution for large enterprises is built around the power and expansiveness of IBM
Tivoli® applications.
The Remote Management Agent is the common component in both solutions. With
RMA, you can start with a smaller and less expensive installation based on IBM
Director. When the need for more capacity arises, you can easily move to a full
Tivoli solution without changing the agent infrastructure in the store, which is RMA.
You should consider such factors as your environmental needs and what type of
functions you need to deploy. For example, how many devices do you need to
manage? Do you need to manage them centrally from one tool? Can you divide
your enterprise into regions? Who needs to have access to individual management
tools? Do you already have an enterprise management tool, and can it be
integrated?
All of these questions will help you and your service team better understand how to
configure a solution that best fits your needs. The most important thing to
remember when examining a systems management solution is that there is not one
solution. Everyone's needs and wants are different, and the key is to provide
solutions that address all of them.
Even though this guide focuses primarily on using IBM Director to manage retail
infrastructure from the enterprise, you can use other management applications to
connect with the RMA Master Agent and manage the resources in each store,
including custom management applications written using Java Management
Extensions (JMX) and the RMA programming interfaces.
This chapter explains how RMA provides support for the management disciplines
discussed in Chapter 1, “Retail systems management,” on page 3.
Power management
RMA provides support for managing the power states of POS systems in your
enterprise. This includes the ability to remotely shut down, suspend, reboot, and
power on (using Wake On LAN®). These operations can be invoked and scheduled
from IBM Director.
Events Management
Hardware and software resources in the store generate notification events, which
the RMA agent receives and forwards to each higher-level tier, up to the enterprise.
RMA V2R6 and later provides integration with the Windows Event Log Service.
Windows Event Log Service enables Windows event logs to read, converted to
RMA events, and forwarded to other applications.
The IBM Director Server retrieves RMA events from the RMA Master Agent in each
store, where they can be viewed and filtered from the IBM Director Console.
Additionally, the event action plan facilities of IBM Director provide the ability to take
proactive actions in response to specific events.
Software distribution
RMA provides support for the distribution of generic software packages (consisting
of files, or a set of commands, or both). RMA defines a standard package format
and facilities for deploying packages to multiple clients on various platforms in the
store from the Master Agent.
You can use IBM Director to retrieve and store collections of hardware- and
software-inventory information, including retail-specific information for peripherals.
This information is stored in the IBM Director database, and it can be monitored or
queried (even when not connected to the RMA Master Agents).
Clients that are running RMA can also be monitored using the IBM Director
monitoring interface, where retail-specific monitors, as well as the default IBM
Director monitors, can be created.
The Retail Extensions for IBM Director provide a user interface for creating and
managing RMA data-capture policies.
You can use the Retail Peripheral Management tasks in IBM Director to monitor
retail peripherals and collect inventory.
File transfer
RMA supports the ability to perform file operations remotely.
You can use the RMA File Transfer task in IBM Director to browse the file system
and to perform file operations on devices that are running the RMA agent, including
sending, receiving and viewing files.
Master
Agent
General
General
Agent
Agent
Store
As the number of devices grows, more IBM Director Servers are required, as is
depicted in the scenarios in this section.
Master Master
Agent Agent
General General
General General
Agent Agent
Agent Agent
Store Store
Hardware requirements
The Master Agent runs on the in-store processor. The in-store processor is a
Microsoft Windows, Linux, or 4690 V6 Enhanced system that runs the IBM Remote
Management Agent service and provides a point of interface for enterprise
applications or other in-store applications. The in-store processor should have a
minimum 1 GHz processor with 1 GB of RAM. The Master Agent Service requires
approximately 80 MB of memory without any extensions or connected General
Agents. Memory usage will increase as extensions are added, connections are
made, and policies are applied.
| The General Agent runs as an embedded agent in a Java virtual machine (JVM), as
| a system service on a 4690 controller, or on a Windows or Linux system. The
| Master Agent and General Agent services cannot be installed on the same
| computer. The General Agent Service requires approximately 70 MB of virtual
| memory when running in a Windows environment and 40 MB of virtual memory
| when running in a Linux environment.
On 4690 operating systems, additional memory is required for each terminal that
the controller supports.
Software requirements
This section describes the software requirements for the IBM Remote Management
Agent.
Java
The IBM Remote Management Agent installs its own IBM Java 6 Runtime
Environment (JRE) software. It does not require a JRE to be installed before RMA
installation.
The IBM Remote Management Master Agent V2R6 supports communication with
previous levels of the General Agent running on the following platforms:
The Retail Extensions for IBM Director support communication with previous levels
of the Master Agent running on the following platforms:
v 4690 OS V6 with RMA V2R4
v IBM Retail Environment for SUSE Linux (IRES) 2.1.5 with RMA V2R3
IBM Director
The Retail Extensions for IBM Director for IBM Remote Management Agent V2R6
require IBM Director 5.20.3 Service Update 3 on the following platforms:
v SUSE Linux Enterprise Server (SLES) 9
v SUSE Linux Enterprise Server (SLES) 10
v Windows 2003 Server
v Windows 2003 Server x64
Installation roles
| The IBM Remote Management Agent can be installed as a Master Agent or as a
| General Agent. Chapter 7, “Installing the Remote Management General Agent and
| Master Agent,” on page 21 only describes the installation of the General Agent
| Service or Master Agent Service components. Starting a General Agent
| programmatically within an application JVM is discussed in “Embedded Agent
| registration” on page 202.
Note: Due to the design of RMI, opening up port 10150 alone on a firewall will
not work. Remote connections made to a Master Agent through a firewall
can only use SOXS.
v 10151: Java RMI (Remote Method Invocation) Communication between Master
Agents and General Agents inside the store.
Note: Due to the design of RMI, opening up port 10150 alone on a firewall will
not work. To allow connections to be made to systems running Windows,
an exception is automatically added for the RMA agent executable
(rmsvc-ga.exe or rmsvc-ma.exe) during installation.
v 10190: RMA File Streaming
v 31200: UDP port used on Master Agents and General Agents for discovery. The
multicast address used is 225.6.29.63
| The security mode can be changed after installation from mode to mode by
| changing the security configuration file on the Master Agent system (see “Security
| configuration” on page 43).
| Security groups
| Enhanced authentication not only validates a given username and password, but
| also verifies that the user is a member of a specific system group. The group
| membership requirements on each platform are described below.
| Note: When upgrading the Master Agent to secure mode using RMA Software
| Distribution, a valid Windows username and password is required to connect
| after the updated Master Agent starts in secure mode. You should have an
| Administrator username and password (Windows) or the root password
| (Linux) before you upgrade. Depending on the system environment, it also
| might be necessary for you to pre-configure some security groups.
| Windows
| During installation of a Master Agent on Windows, a Windows local group called
| RMAAdmin is created for RMA authentication. During authentication, the supplied
| username is checked for membership in this group, and the username and
| password are verified. During installation, the local Administrators group of the
| system is added to the RMAAdmin group. You can modify the contents of the
| RMAAdmin group to contain other local or domain user accounts and groups.
| Linux
| If it does not already exist, a group called rmaadmin is created for RMA
| authentication during installation of a Master Agent on Linux. During authentication,
| the supplied username is checked for membership in this group, and the username
| and password are verified. The root user is added as the only member of this
| group during installation. You can modify the contents of the rmaadmin group to
| contain other user accounts.
| IBM Director
| When IBM Director connects to a Master Agent that is running in enhanced security
| mode, a username and password is required to authenticate with that store. Master
| Agents that require authentication are denoted with a lock icon:
|
| Authenticating with the Master Agent using the Store Authorization task will remove
| the lock icon, discover the managed objects in the store, and allow them to interact.
| See “Store Authorization Management task” on page 72 for more information on
| working with secured Master Agents in IBM Director.
| Once discovered, a key pair is exchanged between the Master Agent and General
| Agent to use as a basis for authentication. If a Master Agent is lost, then all of the
| keys for the General Agents are also lost, and reinstalling the Master Agent does
| not work. To prevent the keys from being lost, you should back up the key store
| files so they can be restored on the new machine. You can do this manually by
| regularly backing up the %SI_HOME%\user\rma\security\keys_ma.dat file on the
| Master Agent. You can also back up the Master Agent keys from the enterprise
| using the Store Authorization Management task in IBM Director. Using the Store
| Authorization Management task, the backup operation can be scheduled or invoked
| immediately.
| If you are unable to restore the keys on the Master Agent, the keys on each
| General Agent should be restored to the default key. You can restore the key by
| deleting the %SI_HOME%\user\rma\security\keys_ga.dat file on each General
| Agent, and restarting the General Agent service.
The level of the Master Agent must always be at the same level or later than those
on any client to avoid unpredictable results. Therefore, it is important to always
upgrade the Master Agent in a store before updating the General Agents.
The Retail Extensions must also be at the same level or later as the Master Agents
to which it is connected. Therefore, you should upgrade the Retail Extensions for
IBM Director before upgrading the Master Agents.
Installation procedure
To install RMA on Windows, perform the following steps:
1. Log on with Administrator authority.
2. Insert the installation CD into the CD drive.
3. To run the installation program, open a command prompt window and issue
the D:\windows\rma\setup.exe command, where D is the CD drive.
4. On the Welcome to the InstallShield Wizard for Remote Management Agent for
IBM Remote Management Agent panel, click Next.
5. On the Software License Agreement panel, select I accept the terms in the
license agreement. Installation cannot continue until you read and agree to
the license terms. Click Next.
Note: Steps 6-9 are for fresh installations only. If RMA is already installed on
the system, then proceed to Step 10 on page 24.
6. The default installation directory is displayed. To use the default, click Next to
continue. Otherwise, click Browse to select a different directory, and then click
Next.
Note: If Store Integrator (SI) is installed on the system, then install RMA to
that file location.
8. For Master Agent installation only: Enter your Store ID and click Next.
Note: The Store ID cannot contain the comma (,), equals (=), colon (:),
quotation ('), asterisk (*), pipe (|), or question mark (?) characters.
Chapter 7. Installing the Remote Management General Agent and Master Agent 23
10. For Master Agent installation only: Select a security mode option and click
Next.
12. The installation process takes several minutes. When the process is complete,
click Next.
13. You can choose to reboot now or later. Click Finish to complete the installation
process.
All products in the Store Integrator family are installed in terms of components.
Each component is installed into its own directory <COMPONENT>xxxxxxx under the
root directory, where xxxxxxx stands for the version number.
The RMA component is installed with the Remote Management Agent. The directory
is created under the installation root directory.
A maximum of two versions of each component can be on the system: the current
version and a backup version that can be reactivated if the current version does not
work as expected.
Chapter 7. Installing the Remote Management General Agent and Master Agent 25
Windows post installation
Following the completion of the installation process, you are required to reboot
before the new installation will take effect. Upon restart, the IBM Remote
Management Agent Service starts running. There is an entry for the IBM Remote
Management Agent Service in the Windows Services Applet from the Control Panel.
Note: If a Master Agent running in enhanced security mode was installed, you can
make custom changes to the RMAAdmin security group. For more information
about group membership when running in enhanced security mode, see
“Security groups” on page 19.
Linux prerequisites
RMA relies on access to Common Information Model (CIM) information on each
system to perform certain functions. Without CIM information, limited system
information is available to RMA, and as a result some functionality is not present or
is only available in a limited fashion. The following lists the features that are not
available or that are limited without CIM information:
v No retail peripheral management is available, including peripheral inventory,
monitoring, and events.
v The amount of inventory information collected is severely reduced.
v The number of attributes that you can monitor is severely reduced.
The following RMA functionality is still available without access to CIM information:
v Software Distribution
v Agent Discovery
v Power Management
v Data Capture
v Events (Except for UPOS peripheral events)
v Monitoring (severely limited)
v Inventory (severely limited)
SFCB installation
The following RPM packages, included in the SLED distribution, provide SFCB
support on a SUSE Linux Enterprise system:
v sblim-sfcb
Chapter 7. Installing the Remote Management General Agent and Master Agent 27
v sblim-cmpi-network
v sblim-cmpi-nfsv3
v sblim-cmpi-nfsv4
v sblim-cmpi-params
| v sblim-cmpi-smbios
v sblim-cmpi-sysfs
v sblim-indication_helper
v sblim-wbemcli
There are multiple ways to install the SFCB packages. You can install all of the
required packages using the graphical user interface with the following procedure:
1. Click Computer -> Install Software.
2. Click Groups -> Switch to Patterns.
3. Click the Web-Based Enterprise Management Pattern.
4. Install at least the following packages:
v sblim-sfcb
v sblim-sfcc
v cim-schema
v cmpi-provider-register
5. Click Patterns -> Switch back to Groups.
6. Select All and search on sblim.
7. Install the following packages:
v libRaTools0
v libsblim-cmpiutil1
v sblim-cim-client2
v sblim-cmpi-base
v sblim-cmpi-dhcp
v sblim-cmpi-fsvol
v sblim-cmpi-network
v sblim-cmpi-nfsv3
v sblim-cmpi-nfsv4
v sblim-cmpi-params
v sblim-cmpi-sysfs
v sblim-indication_helper
v sblim-wbemcli
SFCB configuration
After SFCB is installed, it must be configured to use unauthenticated Hypertext
Transfer Protocol (HTTP) for RMA.
1. Open /etc/sfcb/sfcb.cfg in a text editor (such as vi).
2. Set enableHttp: to true.
3. Set doBasicAuth to false.
4. Set provProcs: to 40.
5. Save the file and start or restart sfcb with the /etc/init.d/sfcb [start | restart]
command.
Installation procedure
The following instructions describe how to manually upgrade and install RMA on
Linux.
Post installation
During the installation process, the Remote Management Agent Service will be
installed. There is a SysInit shell script for running the Service in the /etc/init.d
directory, rmsvc-ga (General Agent) or rmsvc-ma (Master Agent). This script has
the following parameters (status, start, stop and restart).
Chapter 7. Installing the Remote Management General Agent and Master Agent 29
Fresh installations only: Before running either of the agents for the first time on
Linux, the rma-config script must be run in order for required configuration values
to be stored. The script is found in the $RMA_HOME directory, where
$RMA_HOME is the path to the currently installed RMA level (/opt/ibm/
StoreIntegrator/RMA261xxxx).
Without any arguments, the script is interactive and will prompt for each piece of
information. The script can be run silently by supplying each configuration value on
the command line. The following options are available:
-n Network interface
-s (Master Agent only) Store ID
-u (Master Agent only) Security mode; valid values are enhanced and standard
The following example supplies the value eth1 for the network interface option and
myStoreId for the store ID:
/opt/ibm/StoreIntegrator/RMA261xxxx/rma-config -n eth1 -s myStoreID -u enhanced
Note: The myStoreId string cannot contain any of the characters comma (,), equals
(=), colon (:), quotation ('), asterisk (*), pipe (|), or question mark (?).
To supply new values for the configuration properties, the script can be ran any time
following installation. After running the script, the RMA agent must be restarted for
the changes to be reflected.
Note: If a Master Agent was installed running in enhanced security mode, custom
changes to the rmaadmin security group can be made. For more information
about group membership when running in enhanced security mode, see
“Security groups” on page 19.
4690 OS installation
Refer to the 4690 Planning, Installation, and Configuration Guide for more
information on enabling this option.
Updating RMA
Using RMA Software Distribution in IBM Director, you can upgrade the RMA agents.
Package files located directly on the installation CD can be imported into IBM
Director, creating RMA Software packages that can then be deployed to all
Windows and Linux systems running RMA. As of 4690 OS V6, RMA is included in
the base 4690 OS. You must upgrade 4690 OS in order to upgrade RMA.
Package import
To upgrade RMA, use one of the package files located in the dirpkgs directory on
the RMA installation CD:
RMA_GeneralAgent_x.y.zzzz_Win32.rsdp
Upgrades the General Agent running on a Windows system.
RMA_MasterAgent_EnhancedSecurity_x.y.zzzz_Win32.rsdp
Upgrades the Master Agent running on a Windows system and enables
enhanced security mode.
RMA_MasterAgent_StandardSecurity_x.y.zzzz_Win32.rsdp
Upgrades the Master Agent running on a Windows system and enables
standard security mode.
RMA_x.y.zzzz_Linux.rsdp
Upgrades the General Agent or Master Agent running on a Linux system.
Notes:
1. Once an agent has been migrated from a previous version, certain configuration
and data files in the %SI_HOME%\user\rma directory are migrated to new
formats. As a result, going back to the previous version can cause unpredictable
results.
2. When updating the Master Agent using RMA Software Distribution in IBM
Director, there are two packages on the installation CD to upgrade RMA. One
package upgrades the Master Agent and enables enhanced security mode, the
other upgrades the Master Agent and enables standard security mode.
Chapter 7. Installing the Remote Management General Agent and Master Agent 31
32 RMA V2R6 User's Guide
Chapter 8. Installing Retail Extensions for IBM Director
The IBM Remote Management Agent is delivered on a single CD, and includes the
Retail Extensions for IBM Director. The CD is used for installation on Windows- or
Linux-based IBM Director systems. The Retail Extensions for IBM Director provide
the additional functionality to support the management of retail devices and must be
installed on all IBM Director Servers and Consoles.
Note: Read all of the instructions carefully before attempting to install the Retail
Extensions for IBM Director software.
8. The installation process takes several minutes top complete. When the process
is complete, click Finish.
Note: If the IBM Director Server is running, the server is stopped so that the
extensions can be installed. If the server is stopped by the installation
program, it is then restarted when the installation is complete.
Note: InstallShield searches for the location of the installed JRE on the system.
If the JRE is not in the default location, this search might take a long
time. If you know the location of the JRE, you can bypass the search by
issuing the /media/cdrom/linux/rma4itd/setup.bin -is:javahome jrepath
command to run the installation program, where jrepath is the path to the
IBM JRE directory.
4. Click Next on the Welcome to the InstallShield Wizard for Retail Extensions for
IBM Director panel.
5. On the Software License Agreement panel, select I accept the terms in the
license agreement. Installation cannot continue until you read and agree to the
license terms. Click Next.
6. If you are upgrading from RMA Extensions for IBM Director V2R3 or earlier, a
panel is displayed to notify you that the UPOS peripheral inventory information
will be removed during installation due to database table format changes. After
the upgrade has completed, inventory information will be restored after the first
inventory collection.
7. A summary panel is displayed with the information pertaining to the installation.
The installation software accesses your system to determine the location of the
IBM Director application and sets this location for the install. The software must
be installed in the same location that IBM Director is installed; therefore, you
cannot change this location. When you are ready to proceed with the
installation, click Next.
8. The installation takes several minutes. When the process is complete, click
Finish.
Note: If the IBM Director Server is running, the server is stopped so that the
extensions can be installed. If the server is stopped by the installation
program, it is restarted when the installation is complete.
After uninstalling RMA from a Windows system, you need to reboot so that
environment variables can be updated.
Uninstallation result
After uninstalling RMA for Linux:
v The installation or root installation directory %SI_HOME% remains.
v The %SI_HOME%/silogs folder remains.
v The Remote Management Agent Service is removed.
v The uninstallation script under the root directory is not deleted.
v The environment variables are updated or removed.
v On Windows, all RMA license files remain on the system. These are the license
file directories on each platform:
– Windows: %SI_HOME%\RMA_license
– Linux: /opt/ibm/StoreIntegrator/RMA_license
v The RMA configuration directory (%SI_HOME%\user\rma) is not deleted as a
result of uninstallation when rolling back to a previously installed level. When you
are installing only one level of RMA on the system, removal is optional during
uninstallation.
Note: The RMA configuration directory contains all data and configuration files for
RMA. Removal of this folder deletes all of these files, regardless of how or
when they were created.
Uninstalling only the extensions will cause the IBM Director Servers to crash on a
restart because of its persistent storage link to the software used by the extensions.
Therefore, an uninstallation executable is not provided for the Retail Extensions for
This is also true when you are updating to a new version of the extensions.
Because there are new classes in the new code that will get persisted, the
extensions cannot be uninstalled to go back to the previous level after the Retail
Extensions for IBM Director are updated to a new version and the server is
restarted.
Directory structure
The configuration files and extensions for the installed RMA agents are in the
%SI_HOME%/user/rma directory. Under this directory is a set of subdirectories
(listed in Table 1), each containing configuration, data, or extension files.
Table 1. Configuration subdirectory descriptions
Subdirectory Description
/ext Directory that is searched during agent startup for additional Java
archive (JAR) files to be added to the agent class path. This directory
should be used to extend the agent class path.
/classes Directory that is added to the agent class path that contains properties
files that are accessed by the agent.
/config Directory that contains configuration data for RMA MBeans.
/update Directory containing program files and scripts for updating RMA.
/data Directory containing stored data.
/security Directory containing Secure Sockets Layer (SSL) keystores.
(Master Agent) Property that specifies the port used to issue a Wake on LAN request. A
value of 0 means to use a port issued by the underlying operating system.
com.ibm.retail.si.mgmt.storeId
(Master Agent) The store ID. On 4690 OS, this value is populated automatically with the
system's configured store number.
com.ibm.retail.si.mgmt.remote.interface
Name of the interface (such as eth0) that is used for management (General Agent) or is
exposed to management applications (Master Agent).
(General Agent) Name of the protocol to use for the General Agent's JMXConnectorServer
(rmi or soxs). This rarely needs to be changed.
com.ibm.retail.si.mgmt.remote.rmi.socket.timeout
Property for specifying the socket read timeout (in milliseconds [ms]) for connections made
to the agent's Remote Method Invocation (RMI) JMXConnectorServer.
com.ibm.retail.si.mgmt.remote.rmi.socket.connect.timeout
Property for specifying the socket connect timeout (in ms) for connections made to the
agent's RMI JMXConnectorServer.
com.ibm.retail.si.mgmt.generalagent.discovery.ttl
(General Agent) Time to live (TTL) value to use for RMA Discovery Multicast Packets
(default is 1). When General Agents are on a different subnet than the Master Agent, this
value must be configured.
Value for the java.rmi.dgc.leaseValue system property. The value of this property
represents the lease duration (in ms) granted to other virtual machines (VMs) that hold
remote references to objects that have been exported by this VM. Clients usually renew a
lease when it is 50% expired, so a short value will increase network traffic and risk late
renewals in exchange for reduced latency in calls to Unreferenced.
rmi.checkInterval
Value for the sun.rmi.dgc.checkInterval system property. The value of this property
represents (in ms) how often the RMI runtime checks for expired Distributed Garbage
Collection (DGC) leases. This value should not be less than 30 000.
Indicates whether store and forward is enabled for events. Valid values are true (default) or
false.
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.maxevents
The maximum number of events that are stored before the persistence store begins
discarding events (default is 200000).
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.buffersizethreshold
The time threshold for the in-memory event buffers (in ms). After this amount of time passes
without any events being fetched, the memory buffer is flushed to disk.
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.eventExpirationTimeout
The maximum number of days before the event buffer, and the entire set of persisted
events, will be deleted for a Master Agent (MA). When checked, if the earliest persisted
event for an MA is older than this number of days, the entire event collection is deleted.
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.eventExpirationCleanupFrequency
Parameter for the maximum number of events fetched per remote call (the default is 25).
com.ibm.retail.si.mgmt.notifications.memoryQueueCapacity
Parameter for the maximum number of events held in the NotificationProcessor's incoming
event queue before it will begin to buffer events to disk (the default is 1000).
com.ibm.retail.si.mgmt.capture.historyDeletionThreshold
The time threshold, in days, for how long a data capture policy invocation will remain in
progress before being terminated and cleaned up (the default is 1).
com.ibm.retail.si.mgmt.capture.initXferRetryPeriod
Parameter for the initial timeout period (in ms) for transferring data capture files over the
network. After the initial timeout, file transfer will retry at increasing intervals up to the
maxXferRetryPeriod (the default is 15000).
com.ibm.retail.si.mgmt.capture.maxXferRetryPeriod
Parameter for the maximum timeout period (in ms) for transferring data capture files over
the network (the default is 600000).
Security configuration
The security configuration file is called security.properties. This file is located in
directory %SI_HOME%\user\rma\security.
There are three properties in the security configuration. The first is the security
mode, which is either standard or enhanced. Standard mode security is the only
mode available on RMA V2R4 and earlier; however, standard mode security is still
supported on later versions. Enhanced mode security requires a username and
password to unlock access to a Master Agent.
# Property indicating percentage of the lifetime for when key expiration warning
# event is generated. The event triggers automatic key renewal. Default for
# invalid or missing property value is 75%.
RenewKeysPercentOfLifetime=75%
SSL configuration
The use of Secure Sockets Layer (SSL) to create sockets is controlled by the
ssl.properties file located in the following directories:
v Windows: %SI_HOME%\user\rma\classes
v Linux: /opt/ibm/StoreIntegrator/user/rma/classes
v 4690 Classic: M:\rma\user\rma\classes
v 4690 Enhanced: F:\rma\user\rma\classes
v IBM Director: %DIRECTOR_HOME%/classes, where %DIRECTOR_HOME% is
the installation directory for IBM Director. By default, this directory is C:\Program
Files\IBM\Director on Windows and /opt/ibm/director on Linux.
There are two primary aliases in the file, which are SSL and NOSSL. In most
instances, setting other application aliases to one of these files will work. However,
other aliases that use different configuration parameters can be created and used.
The components that rely on the SSL configuration are RMI/SOXS, File Streaming,
and FTPS. The SSL configuration controls whether sockets are SSL enabled when
making remote JMX connections using RMI. The RMA alias determines the use of
SSL for connections between a Master Agent and a General Agent. The RMAMA alias
determines the use of SSL for connections between any management application
(including IBM Director) and the Master Agent. When the RMA or RMAMA aliases are
set to NOSSL, authentication for remote JMX connections is disabled.
RMA File Streaming also makes use of the RMASocketFactory. So that streaming
operations are secure, file streaming sockets are always created using the SSL
alias.
It is important that the keystore on each client have the necessary certificates from
each FTPS server with which it will communicate. This can be achieved either by
The management of the installed keystores is performed using the keytool program
installed with the JRE. Among the functionality that this tool provides is the ability to
view, add, and delete certificates from a keystore.
If the keystore used with the SSL alias is changed from the default, then the new
keystore must contain a certificate to be used by RMA for remote JMX
authentication. The new certificate must be inserted under the alias rsscert.
Note: If Store Integrator (SI) is also used on systems in the network, the
certificates used by SI must be the same as those used by RMA.
The following steps outline creation of a new key store and trust store with a new
certificate on a windows system.
1. From a command window, change to the %RMA_HOME%\jre\bin directory.
2. Generate a new key store with a single key by running:
v keytool -genkey -alias rss -keyalg RSA -validity 365 -keystore
_MyKeys_ -storepass _MyPass_
v Answer prompts appropriately. When prompted to "Enter key password for
<rss>:", press Enter.
Note: The command above creates a certificate that will be valid for 365 days.
3. Export the certificate to a temporary file by running:
v keytool -export -alias rss -keystore _MyKeys_ -rfc -file _MyKeys_.cer
-storepass _MyPass_
4. Generate a new trust store based on the previously-created key by running:
v keytool -import -alias rsscert -file _MyKeys_.cer -keystore _MyStor_
-storepass _MyPass_
v When prompted to "Trust this certificate? [no]:", type 'Yes' and press Enter.
5. Delete the _MyKeys_.cer file.
In the example above, _MyKeys_ represents the name key store file, _MyStor_
represents the name of the trust store file and _MyPass_ represents the password
for these files. Appropriate values should be used in practice.
The property keys in the ssl.properties file that should be updated with the fully
qualified path to the _MyKeys_ file are:
v SSL.ServerKeyFileName
v SSL.KeyFileName
Note: On 4690 Enhanced, use a relative path. The base for the relative path is
F:/rma
The property keys in the ssl.properties file that should be updated with the fully
qualified path to the _MyStor_ file are:
v SSL.ServerTrustFileName
v SSL.TrustFileName
Note: On 4690 Enhanced, use a relative path. The base for the relative path is
F:/rma
Note: When the value _MyPass_ is put in ssl.properties, remove the suffix
"_encrypted" from the property key. The password will be automatically
encrypted when the agent restarts and the "_encrypted" suffix will also be
added to the property key.
Logging configuration
RMA uses the Commons-Logging API for logging, and the Java logging
implementation. RMA supplies the Java Development Kit (JDK) logging
configuration in a file in the following locations:
v Windows: %RMA_HOME%\mgmt_log.pro
v Linux: /opt/ibm/StoreIntegrator/RMA261xxxx /mgmt_log.pro
v 4690 Classic: M:\rma\lib\mgmt_log.pro
v 4690 Enhanced: F:\rma\lib\mgmt_log.pro
To change logging levels or other settings, edit this file and restart the agent. A
user-provided logging configuration file can also be modified to override logging
levels in the base logging file. The name and location for the user configuration file
is %SI_HOME%\user\rma\ext\user_log.pro. If you make logging-level changes for
RMA extensions or overrides to the supplied levels in this file, the user logging
configuration is preserved when an agent install is upgraded.
There are two main areas of the configuration where logging levels are adjusted.
One of these is at the handler and the other is at the logger. In RMA, the handlers
are com.ibm.retail.si.mgmt.logging.RMALogHandler, which handles memory
logging, and java.util.logging.FileHandler, which handles regular disk logging.
As seen in Figure 13, the handler is the last layer before logging is written to disk.
Thus, the .level parameter that is configured on the handler will be the final
determining factor for what is written to disk. In a similar fashion, the .level
parameter of the logger will determine what is passed down to the handler. By
default, the java.util.logging.FileHandler.level is set to INFO and the
com.ibm.retail.si.mgmt.logging.RMALogHandler.level is set to ALL. This default
Note: The user-provided logging configuration file only overrides the two RMA
handler filters and any logging filter (those properties with the .level
parameter). The user-provided logging configuration is applied after the
RMA-supplied logging configuration. You must restart the agent for an
updated user logging configuration to be applied.
Logging levels
As seen Figure 13 on page 47, filtering is done at each level of the hierarchy. Thus,
in order to collect all of the needed data in the RMALogHandler, ready to be pushed
to disk on a trigger, the logger (com.ibm.retail.si.mgmt.level) must be configured
to FINE. FINE level logging should be sufficient for diagnosing problems
encountered in a production environment. FINEST level logging provides a much
more granular logging view not necessary outside of a development or lab
environment.
Note: The Java logging levels are used when setting up the logging configuration
files.
Table 7. Java logging levels
Java logging level (Commons-Logging
level) Description
SEVERE (ERROR) Critical errors that warrant the writing of the
memory buffer to disk and collection of other
This is the default configured push level for problem determination data.
RMA memory logging.
Note: Push level will trigger on that level When a SEVERE error has occurred, RMA
and above (for example, SEVERE would will most likely not be functioning properly.
also trigger on a FATAL error).
WARNING (WARN) Serious errors that indicate that some area of
RMA has malfunctioned but is not
threatening the overall operation of RMA.
Also, these errors could indicate a serious
error in a component of the system on which
RMA depends.
The level of both the handlers and the loggers can be changed dynamically using
the JMX Browser as described in “Adjusting the handler and logger levels using
JMX Browser” on page 102. Modifications to handler and logger levels with the JMX
Browser, however, are only in effect until the agent is restarted. To permanently
modify the handler and logger levels, use the user-provided logging configuration
file at %SI_HOME%\user\rma\ext\user_log.pro.
Agent configuration
This MBean processes an XML configuration file named AgentStartupConfig_1.xml.
This configuration file contains all of the MBeans to instantiate at startup (after the
default startup sequence has been processed), and all NotificationListeners to
register. The following code is an example XML configuration:
<AgentStartupConfig>
<MBeans>
<MBean classname="foo.pkg.mbeans.Hello"
objectName="masteragent:SIFComponent=MyComp,Id-1234"/>
<MBean classname="foo.pkg.other.mbeans.Bye"
objectName="masteragent:SIFComponent=MyComp,Id=4567">
<MBeanArg type="int">5</MBeanArg>
<MBeanArg type="string">ABC</MBeanArg>
</MBean>
</MBeans>
<NotificationListeners>
<NotificationListener
listener="masteragent:SIFComponent=MyComp,Id=1234"
mbean="masteragent:SIFMBean=true,SIFComponent=MGMT,Id=NotificationControl"/>
</NotificationListeners>
</AgentStartupConfig>
To extend the agent startup sequence, all that is required is to create or edit an
XML file in one of the following directories and restart the Agent Service:
v Windows: %SI_HOME%\user\rma\config\startup
v Linux: /opt/ibm/StoreIntegrator/user/rma/config/startup
v 4690 Classic: M:\rma\user\rma\config\startup
v 4690 Enhanced: F:\rma\user\rma\config\startup
Additionally, the configuration can be changed using the MBean interface. (For
additional information, refer to the RMAJavadoc.pdf file that is associated with this
user guide.)
Information from the agent roles takes the form of a role name and an associated
model. By default, the RMA agent comes installed with one of two roles, RMA-GA
or RMA-MA, and an associated model RMA-V2. Upon starting the agent on IBM
hardware not running 4690 OS, the system's four-character machine type is added
as a role and its three-character machine model is added as a model. For example,
a system with the model and type 4800-741 results in a role being created named
"4800" with an associated model named "741."
Events that are added to the Windows event logs can be read by the RMA Master
or General Agent, converted to an RMA (JMX) Notification, and forwarded to other
applications. For example, a management application like IBM Director can
consume these events. You can also configure filters to determine which events are
forwarded by RMA. By default, no events are forwarded.
Event qualifiers
All events in RMA use a dotted notation called event qualifiers to identify a general
event category that is used to filter events on IBM Director and to build event action
plans. The qualifiers for Windows events piped from the log have this format:
WindowsEventLog.LogType.EventSource.EventCategory
For example, a message from the Windows system event log has the following
qualifier:
WindowsEventLog.System.Dhcp
Example layout:
<WindowsEventLog version="1">
<ApplicationLog>
<FilterEntry sourcename="appname" [level="xxx,yyy"] [errorseverity="zzz"] >
<Category id="#" qualifier="cccccc" level="xxx,yyy" />
<Category name="aaaaa" qualifier="bbbbb" level="xxx" [errorseverity="zzz"]/>
</FilterEntry>
...
</ApplicationLog>
<SecurityLog>
...
</SecurityLog>
<SystemLog>
...
</SystemLog>
</WindowsEventLog>
FilterEntry tags define the criteria used to determine if a log entry should be
created in RMA Notification. A filter entry must include a source name. Specifying
the level on this entry indicates the level to be applied for the handling of all events,
regardless of category. If different criteria are required based on the category, then
include additional tags to indicate the category name and the level to use for that
specific category.
Specifying the level attribute indicates the severity level(s) of the events to be
propagated through RMA. Its comma-separated list contains an entry for each level
to be included by this mapping. The valid values for this attribute are OFF, INFO,
WARNING, ERROR, SUCCESS AUDIT, and FAILURE AUDIT:
v A value of ERROR indicates that Error-level events will create an RtlNotification in
RMA.
v A value of WARNING indicates that Warning-level events will create an
RtlNotification in RMA.
v A value of INFO indicates that Information-level events will create an
RtlNotification in RMA.
v If SUCCESS AUDIT is included in the string, then those events will create an
RtlNotification in RMA.
v If FAILURE AUDIT is included in the string, then those events will create an
RtlNotification in RMA.
v A value of OFF indicates that none of the events that match that criteria will create
an RtlNotification in RMA (the event long entry is excluded from creating an
RtlNotification). Note that OFF should be the only member of the string when it is
specified.
The default mapping of event severities is to map an error type Windows event to
an RtlErrorNotification event, which is a Minor severity in the IBM Director log. You
can use the optional errorseverity attribute on either of these tags. However, it will
override the default mapping to allow higher-severity notifications to occur. This
value is either FATAL, CRITICAL, or MINOR.
Example filter:
<WindowsEventLog>
<ApplicationLog>
<FilterEntry sourcename="MyRetailApp" level="ERROR" />
<Category id="1" qualifier="Printer" level="WARNING,ERROR" errorseverity="CRITICAL" />
</FilterEntry>
</ApplicationLog>
</WindowsEventLog>
This partial file indicates that events logged to the Windows Application event log,
with an event source of MyRetailApp (for any category) that are ERROR type events
will be forwarded to RMA. Events that have an event source of MyRetailApp and an
event category of Printer that are Warning- or Error-type events are also forwarded
(note that ERROR was already covered in the global category). Therefore, all
Error-type events are mapped to the RMA Minor error severity except for Printer
Warning- or Error-type events, which are mapped to the RMA Critical error severity.
Note: RMA supplies the Event Category and Event Message values that are
returned by the resource bundle lookup for an event source, as defined by
the CategoryMessageFile and EventMessageFile registry keys. Refer to
Microsoft documentation for more details.
Table 10. Mapping Windows event log definitions to RMA Notifications
Windows event log record field RMA Notification field
TimeGenerated TimeStamp
LogType EventQualifiers
SourceName
EventCategory
EventType NotificationType
Strings MessageText
Data UserData
ComputerName OriginatingDevice
DeviceID of the GA that originates the log
The Event Type is mapped using the scheme in Table 11. Note that the RMA
Notification type is the go between bridging the Windows event log event type to
the IBM Director severity, which is why the configuration parameter is expressed in
terms of the IBM Director severity level.
Table 11. Event type to severity mapping
IBM Director
Windows event type RMA Notification type severity
Information Success Audit RtlInformationNotification Harmless
Warning RtlWarningNotification Warning
Error Varies based on configuration settings: Minor
Failure Audit MINOR = RtlErrorNotification Critical
CRITICAL = RtlAlertNotification Fatal
FATAL = RtlCriticalNotification
Groups
The Groups panel is the leftmost pane of the console window. It displays a list
containing objects that represent specific filters. These filters define the criteria used
to determine if a managed object should be included. When a group (filter) is
selected, the Managed Object panel displays all systems that meet the criteria of
the selected filter.
Retail Extensions for IBM Director adds a new group folder and places all of the
retail-specific groups under that folder. It also creates a number of hardware-specific
dynamic groups that uses the model type and number information in the Retail
Store Information table to determine membership. Table 12 on page 61 shows the
new groups.
IBM SurePOS 500 Clients Includes all Model 4840, 4851, 4846,
4940, 4951, and 4852s, regardless of
platform
IBM SurePOS 700 Clients Includes all Model 4800s, regardless of
platform
Managed Objects
The Managed Objects panel is the middle pane of the console window. It displays a
list containing the representation of all devices that match the current filter selected
in the Groups panel. It can display the matching devices in a number of selectable
ways.
Each entry in the middle panel represents a device in the retail space managed
through RMA. These devices can be the target of specific management actions,
such as events, software distribution, and inventory collection.
Offline
Unknown state
Offline error
Offline and Locked. For a master agent, this indicates that the authorization
credentials have not been provided to allow this store to be managed. For a
general agent, this indicates the system is already managed by another master
agent (as a different managed object) and cannot be managed by a second one.
Associations
While the filter controls the members displayed in the center panel, associations
control the relationships between those members and how they are displayed. The
Store Association is included for Retail Systems and listed under the Associations
menu. When selected, it changes the view and displays the retail devices based on
their relationships to each other and to the store of which they are a member. To
select this association, right-click in the middle panel of the IBM Director Console
(Figure 16 on page 60), then click Associations to display the cascaded menu.
Find and select Store Association in the menu.
A new folder is displayed for each store that is managed. Opening that folder
presents all of the managed objects representing the devices managed by the
Master Agent for that store.
Tasks
The Tasks panel is the rightmost pane of the console window (Figure 16 on page
60). It displays a list of objects that represent specific tasks that can be performed,
either by themselves or on a managed object. These tasks cover a wide range of
function, which might be targeted or run stand-alone, and limited to specific types of
managed objects.
The Discovery Preferences panel includes a list of the Master Agents (one per
store) that are managed by this IBM Director Server. A unique name is provided for
each store definition, along with the information needed to connect to this Master
Agent. An IP address or hostname (for Master Agents using DHCP) must be
specified to make the connection to the agent. Click the Connection Log button to
display a dialog with detailed information about the most recent connection attempts
for that entry.
1. Provide an Entry Name, which is a unique label for each set of store
information entered.
2. Select to use name resolution (DNS) or a static IP address when initiating a
connection to the Master Agent.
Note: If a hostname is used, ensure that the hostname resolves to the correct
IP address for the Master Agent.
3. Select the connection protocol to use for this store. The default protocol
selection is Automatic Detection.
Automatic Detection will automatically choose to use SOXS or RMI, as needed,
for the connection to the in-store Master Agent. You can also manually select
SOXS or RMI if a store requires a specific connection protocol or special port
number.
For example, a manual configuration is required when connecting to a store
network that has port redirection configured on the in-store router. In this case,
the most likely configuration would be to select SOXS and the appropriate port
number on the configured routing device. Note that in this example, the
configured connection IP address should be that of the routing device that is
providing connectivity to the store. Forwarding should be configured to direct the
appropriate traffic to the in-store Master Agent.
Another example where manual configuration might be useful is when
connecting to a store network that has network address translation (NAT)
configured on the in-store router. In this case, the configuration should be
manually selected with SOXS and the appropriate port number based on
Note: If you make changes to the connection protocol settings, they do not take
effect until the next time that the store connection to Director is lost and
reconnected. To force the connection to immediately be re-established,
select Force Immediate Protocol Change before you click OK.
Note: Removing a Master Agent that has already been discovered and managed
causes the corresponding connection to be terminated. Any managed objects
created using that connection must be manually deleted.
Example:
# Sample Import properties file containing connection information
# for the Master Agent of 3 stores.
MACount=3
Storename.1=Chicago 123
MAUseForCnx.1=HOSTNAME
MasterHostname.1=ShopOurStore.chicago.ibm.com
MasterIPAddress.1=
MasterPort.1=10150
Storename.2=Houston 456
MAUseForCnx.2=HOSTNAME
MasterHostname.2=ShopOurStore.houston.ibm.com
MasterIPAddress.2=
MasterPort.2=10150
MAEventFilter.2=0x000F
Storename.3=New York 789
MAUseForCnx.3=IPADDRESS
The format of the file that is created is described in “Importing a list of Master
Agents” on page 69.
Starting Discovery
The Discovery task is started from the console by clicking the toolbar button on the
far left of the toolbar panel. A discovery engine does a search using criteria
specified for the systems to be added, and creates managed objects for each of the
devices that meet the engine's criteria. For retail, these are systems that implement
RMA. To discover Retail-Managed Objects only, click the down-arrow of the toolbar
button and then select JMX Devices from the list.
For retail, the discovery engine creates a connection to each of the Master Agent
systems defined in the Discovery Preferences Retail Store Devices tab. All of a
retail store's devices are managed using RMA, with the Master Agent serving as the
main point of control. IBM Director connects to each Master Agent, learns about the
devices that are being managed, and creates a managed object in IBM Director to
represent each device known to the Master Agent. The name of each managed
object is the device ID and includes the unique store ID in parentheses next to the
device ID to provide an almost unique name. The only exception is when multiple
RMA agents are running on the same system.
If the Master Agent was installed with enhanced security enabled, then the store
managed object that is discovered for that store is initially in the offline state and
displays a lock icon next to it. This icon indicates to the user that IBM Director is
currently not authorized to manage that device (and store). The user must use the
Store Authorization Management task and provide the username and password for
the store, to authorize this IBM Director server to manage that store. Once the
correct authorization has been established, the lock icon will disappear from the
store managed object and all of the managed systems for that store will appear with
their current state.
RMA General Agents only support connections to a single Master Agent. They
initially start with a default authorization key that is known by all master agents.
When a Master Agent connection is made using the default key, a new key
exchange takes place between the General Agent and Master Agent to create a
unique authorization key that is only known by the two systems. After this point, no
additional Master Agents will be able to connect to the General Agent using the
default key. If a new connection attempt is made, the General Agent will appear as
offline and 'locked' on the IBM Director Console for the additional Master Agent
connection. The Store Authorization Management task allows these connection keys
Invoking the task displays a window that allows the user to specify the username
and password that must be used to authorize the IBM Director server to
communicate with the Master Agent system in that store. The task displays all of
the targeted systems in the table, allowing you to work with the authorization of one
store or multiple stores at the same time. This task is used to manage the
authorizations to Master Agents that have been secured ( installed with the
enhanced security option selected). This task is also used to manage the keys
between the master agents and their general agents. There are additional subtasks
available to allow you to backup the keys assigned to the general agents from the
master agent, and to restore the keys from a backed up version to the master
agent.
You can select one or more of the targeted systems listed in the table in the Store
Authorization task and choose the Manage Store Authorization menu option. This
launches the Store Authorization Management credentials dialog and allows the
user to enter the username and password that must be used to authorize IBM
Director to manage that store. This username must exist on the system and must
be a member of the security group (varies based on OS). You can use this dialog to
enter the username and password for the initial authorization of a new store or to
update the authorization information for an existing store.
The authorization request is sent when you press the OK button on the dialog, and
then the status information is updated in the table based on the results of the
request. The keys assigned to the general agents by the master agent can be
backed up on the IBM Director server in case a problem requires the master agent
to be reinstalled or replaced. Select one or more of the targeted systems listed in
the table in the Store Authorization task and choose the Backup Client
Authentication Keys menu option. This will launch the scheduler dialog, allowing
you to choose to execute the backup now, schedule it for another time, or schedule
periodically. The keys are stored on the IBM Director server in the
data\rma\authmgmt folder in the install location. The filename is composed of the
store name, the device name of the master agent and an encoded timestamp. Up
to two versions of the backup file will exist. The timestamp is encoded in the
filename with the format yyyyMMddHHmmss. For example, the filename
RtlAuth_Store001_MyStoreServer20090630142311.ckb would contain the backup
for a store named Store001 and the master agent with the device name
MyStoreServer taken on June 30, 2009 at 2:23:11 pm.
Restoring the keys is also done from the Store Authorization task window. Select
the master agent system that you want to restore the keys for, and choose the
Restore Client Authentication Keys menu option. This launches a file dialog
allowing you to select the file to use to restore the keys from. Select the file to use
for the restore and hit OK to restore those keys to the selected master agent.
Inventory collection
Inventory collection requests are forwarded down to each targeted General Agent,
and the results are returned as an event.
Note: If the connections has been down for some time and a backlog of events
exist, then the results of an inventory collection might be delayed.
The inventory collection that is performed on Retail Systems uses the MBean
information that has been gathered by the General Agent for a specific device.
When the Retail Extensions for IBM Director receives the new inventory system
event, it maps that information to the existing IBM Director inventory database
tables.
To start the collection, right-click the device on which you want to perform the
collection, and select Collect Inventory from the menu. To start collecting on multiple
devices at once, first select all of the devices from the list, then right-click one of the
selected devices, and select Collect Inventory from the menu.
The Inventory Service window is displayed to inform you of the status of your
inventory requests. When the inventory has been completed on the device, the
status column is updated to reflect the current status.
Viewing inventory
After the inventory information has been collected, you can view the information for
a device or group of devices by selecting the devices and right-clicking over them,
and then selecting View Inventory from the menu.
The Available Queries tree displays a hierarchy of categories. The lowest level of
each branch represents one of IBM Director's Inventory database tables. Selecting
it displays the results of a database query using the selected branch to define the
criteria of the query and contents of that database table in the right-hand panel (the
query results panel).
Events
The IBM Director Console provides two tasks for managing events. The first is an
event log that you can use to view all of the events that have been received for a
system or group of systems. The second task is event action plans.
Event log
The Event Log displays all of the events for the selected systems. RMA uses a
store and forward methodology so that events that occur when a device or store is
disconnected can be sent when the device or store is reconnected. These retail
notifications are mapped into IBM Director events, and the date and time are set to
when the event occurred.
3. Right-click the Send an Alphanumeric Page (via TAP) item in the Actions
panel of the Event Action Plan Builder and select Customize.
a. Select the serial port that the dialing software will use to find the modem
through which the paging message is sent.
b. Enter the phone number of the paging network in the next entry field.
Include any area codes and special number required to access the local
phone network.
c. Enter the pager ID or PIN of the person you are attempting to page.
d. Enter the information to be displayed on the pager in the Message to Send
entry field. Remember that event data substitution can be used to customize
the message based on the event that has occurred. The pager message is
limited to 256 characters. Click on the Help tab for more details.
e. Optionally, include any special characters required to initialize the modem.
4. Finally, create the new event action plan by bringing up the context menu in the
Event Action Plans panel of the Event Action Plan Builder and select New >
Event Action Plan. Enter a unique name for the event action plan (in this
example Self-checkout Plan was chosen) and click OK.
a. Select the JMX Monitor Changes event filter created earlier in the middle
panel and then right-click the action plan created above and select the Add
Event Filter menu choice. This will add the selected filter to the plan.
b. Select the Page SysAdmin action created earlier in the right-hand panel
and then right-click the newly added filter in the Event Action Plan panel and
select the Add Action menu choice. This will add the selected action to this
filter in the plan, as shown in Figure 27.
c. Look at the main console and you will see the new Event Action Plan listed
under the Event Action Plans task, as seen in Figure 28. Drag the event
action plan on the main console to one or more Managed Objects to apply
that plan to the Managed Object or Objects.
Figure 28. Newly created Event Action Plan appears in the Tasks frame
| The general format of the xml file is to define a <publishlist> element for each
| event type, with several <publishevent> types inside. Each nested <evtqualifier>
| element provides an event qualifier, which is listed in order. The following example
| defines two event types: MyApplication.Device.Error and
| MyApplication.Device.Update
| <?xml version="1.0"?>
| <publishlist>
| <publishevent family="MyApplication">
| <evtqualifier index="1" id="Device" />
| <evtqualifier index="2" id="Error" />
| </publishevent>
| <publishevent family="MyApplication">
| <evtqualifier index="1" id="Device" />
| <evtqualifier index="2" id="Update" />
| </publishevent>
| </publishlist>
| After you create an XML file, you need to restart the IBM Director Server to
| recognize any changes.
Severity mapping
IBM Director event-severity levels are different than those provided in RMA. The
following table shows the mapping between RMA event-severity levels and IBM
Director levels.
Table 16. Severity mapping
RMA severity IBM Director severity
RtlCriticalNotification Fatal
RtlEmergencyNotification Critical
RtlAlertNotification Critical
RtlErrorNotification Minor
RtlWarningNotification Warning
RtlNoticeNotification Warning
RtlInformationNotification Harmless
RtlDebugNotification Harmless
RtlTracePointNotification Harmless
RtlConsumerNotification Unknown
Software distribution
The IBM Director Console provides the capability to create software distribution
packages that can be installed on managed systems, and to schedule those
packages for delivery and installation on those systems. Due to differences in the
base IBM Director software-distribution packages, the RMA Software Distribution
A user can use the RMA Software Distribution task to maintain and distribute
software packages in retail stores. To provide this functionality, the RMA Software
Distribution task performs the following subtasks:
v Create a new install package.
v Create a new uninstallation package.
v Edit existing installation and uninstallation packages.
v Rename existing installation and uninstallation packages.
v Delete existing installation and uninstallation packages.
v Distribute existing installation and uninstallation packages.
v Export installation and uninstallation packages.
v Import installation and uninstallation packages.
All of the RMA Software Distribution subtasks are contained in the parent SWD task
in the task panel on the right side of the console. You can initiate any of the
subtasks by right-clicking the package. The only subtask that cannot be performed
using double or single clicks is the distribution of the packages. This is explained in
the “Software distribution” on page 78 section.
Destination directory: This is the location on the target system for this operating
system where all needed files will be placed before you run the commands. If the
directory already exists, be sure that the RMA agents have access to the specified
location.
To place files into the package, navigate through the system tree on the left,
highlight the selected file or directory, and click the forward arrow (top arrow button
in the panel). By default, the file dialog does not recursively go through all child
directories and add the files to the package. To do this, select the Include
Subfolders check box below the file tree on the left side. Another option to add
files to the package is to save the full path information of the files being added to
the package. By default, when selecting files, the file dialog does not save the full
path information.
The list on the right side of the dialog shows how the files are placed in the
destination directory that is defined in the operating systems page of the wizard. If a
file or directory needs to be removed, highlight it and click the left arrow (bottom
arrow button on the panel).
To enter commands, click Commands. This button displays a dialog that shows a
table of the current list of commands that will be invoked during the package
distribution.
Adding Commands for Non-4690 Packages: To add a command, click Add. This
button displays a dialog box in which you can enter the path, arguments, return
code, return code file, and command log (shown in Figure 34).
To remove a command from the package, highlight the command in the table and
click Remove. If you would like to edit a command in the table, just double-click on
the row to open the command entry dialog. You will be in edit mode, so any
changes you make will override the table selection that you double-clicked. Click
Cancel to cancel any changes that you have made.
Adding Commands for 4690 Packages: When you are adding a command for a
4690 OS package, a wizard is displayed that guides you through the process of
creating the command. See “RMA Software Distribution 4690 Command Wizard” on
page 87 for information on creating commands with this wizard.
The progress panel shows you the current step and its progress, in addition to the
overall progress.
When the wizard finishes creating the package and transferring the files, the
package is ready to use. A dialog notifies you that the package has been
successfully saved. Click OK to close the wizard and the new package is displayed
under the IBM Director Tasks list as shown in Figure 36 on page 87.
The following is a list of the 4690 commands. To begin the creation of a command,
select one of the commands from the list and click Next.
v Invoke Batch File
v Supply command information manually
v Re-IPL (ADXCS20L)
v Apply Software Maintenance (ADXCST0L)
Invoke batch file: When you select Invoke Batch File from the command list,
Figure 39 on page 89 is displayed to enter the BAT file path, arguments, return
code, return code file, and command log:
After you supply the command information, click Finish to complete the command.
The command then appears in the command list dialog.
After you supply the command information, click Finish to complete the command.
The command then appears in the command list dialog.
After you select one of the command options, click Finish to complete the
command. The command is displayed in the command list dialog.
From this panel, select each product that will be affected by the command and add
them to the list on the right. To add a product, select the product name from the list
To supply information for a product that is not in the list, select the product named
Custom ASM Package and click Add.
You will be prompted for information about the package's product control file, which
uniquely identifies the package. After you supply the fifth and seventh characters of
the package's product control file name, click OK and the package is added as a
selected product into the list on the right.
Figure 44 dialog opens with a table for each package that you selected in the
previous dialog, along with a drop-down list of ASM states. For each product in the
table, select the desired target ASM state; then click Next to proceed. The final
panel displayed is Figure 45 on page 92, which list the additional command options:
After you select command options, click Finish to complete the command. The
command then appears in the command list dialog.
Editing Commands
After you create a command with the 4690 Command Wizard, you can edit a
command by double-clicking the command in the command list table, which opens
the command entry dialog. Because you are editing the command, any changes
you make will override the table selection that you double-clicked.
Click Cancel to cancel any changes that you have made, or click OK to save your
changes.
Edit package
From the Task panel of the IBM Director Console, right-click the package to access
the package subtask menu. Click the Edit Package menu item to activate the
subtask that opens the Package Wizard that is used to edit the selected package.
The wizard used to edit the package is the same wizard that was used to create the
package. For more information on the Package Wizard, see “Package Wizard
general information” on page 80.
Rename package
From the Task panel of the IBM Director Console, right-click the package to access
the package subtask menu. Click the Rename Package menu item to activate the
subtask that opens a dialog for the new name of the package to be entered. When
the new name of the package has been entered, click OK to save the new name.
Delete package
From the Task panel of the IBM Director Console, right-click the package to access
the package subtask menu. Select the Delete Package menu item to activate the
subtask that opens a dialog to confirm that you want to delete the selected
package. Click Yes to delete the package.
Import package
From the task panel of the Director Console, right-click the RMA Software
Distribution task and select Import Package. The following dialog is displayed for
you to enter or select the location and name of the file from which to import the
RMA software distribution package.
Export package
From the task panel of the Director Console, right-click the package to access the
package subtask menu. Click Export Package. The following dialog is displayed for
you to enter or select the location and name of the file from which to export the
RMA software distribution package.
Deploying a package
All packages that have been created or imported onto the server are distributed the
same as IBM Director software distribution packages. Drag the package from the
task pane over to the system (or systems) in the Managed Objects pane and follow
the instructions for deployment that appears in the scheduler panel that displays
when the package is dropped.
When a software package is deployed to a store, it is retained at that store for 120
days. Therefore, subsequent deployments of the package to systems at that store
are not required to be retransmitted from the Director server to the store. Each
deployment resets the 120 day timer. Additionally, if a network problem occurs and
the entire software package is not transferred, then the next time that package is
deployed, only the remaining portion of the package that was not transferred will be
sent.
These features reduce the amount of data transferred between the Director server
and agents in the stores. In addition, subsequent deployments of the software
package complete in a shorter amount of time, increasing the efficiency of software
distribution.
Task invocation
You can only invoke the RMA File Transfer task on a single retail-managed object.
You can invoke the task on a Windows or Linux Master Agent that is running RMA
V2R4 or later. On 4690, you can only invoke the task on a Master Agent that is
running 4690 V6R2 or later. General Agent support depends upon the RMA version
of the Master Agent: the Master Agent must be V2R6 or later. Table 18 summarizes
this support:
Table 18. RMA File Transfer task invocation support
Target managed Required RMA Required Master
object type Platform version Agent RMA version
Master Agent Windows V2R4 or later n/a
Master Agent Linux V2R4 or later n/a
Master Agent 4690 V6R2 V2R6 n/a
General Agent Windows V2R4 or later V2R6 or later
General Agent Linux V2R4 or later V2R6 or later
4690 V6R2 V2R6 V2R6 or later
General Agent
(controller only)
These tree nodes represent the categories of JMX objects. All children
nodes can be more categories, instance collections, or instances.
Collection
Collections contain one or more JMX instances. The instances do not show
up as child nodes in the tree. Instead, they are selectable in the Instance
panel on the right side.
Instance
When navigating through the JMX tree, each category has a small square to the
right of the icon to expand or collapse the view, showing inner categories,
collections, and instances. To view the information for a specific JMX instance, click
the JMX instance in the tree, and its information will be displayed in the JMX
Instance panel on the right side of the browser. If you select a collection of
instances, look for the selectable instances in the top section of the JMX Instance
panel.
Instance panel
This panel shows the property and method information pertaining to the selected
JMX instance. In the case that a JMX Collection is selected in the Tree panel, the
Instance panel will show a list of available instances at the top. When one of the
shown instances is selected, the Property and Method information will be populated
accordingly in the bottom half of the panel.
Properties
The list of properties belonging to the JMX instance is selected in the Instance
panel. All of the readable properties are displayed here, showing each property's
name, type, value, and whether it is modifiable. The property can be determined to
be modifiable if the lock in the Modifiable column is set to unlocked. If a property is
modifiable, the property can be modified by either double-clicking on the property's
row in the table, or by right-clicking and selecting Set Value. It is also possible that
a property that is modifiable cannot be modified using the JMX Browser. Some
property types are not supported by the base JMX Browser but might be enhanced
so that the unsupported properties become supported.
When you choose a property to be modified, a dialog is displayed for you. The
current value of the property is set in the dialog as an initial value. Some property
types can be set to a null value. This option should only be used by those who
understand how the property is being used and how a null value will affect
operations of the selected JMX instance.
Click Save to save the current setup of the property for future execution on this or
any other JMX instance of the same class on any device. When you click Save, a
dialog appears that prompts you to enter the description for the task it will create.
The name can be anything you want, as long as it does not match an existing
saved task. These saved tasks are found under the JMX Browser task and can be
started by dragging the task to the target device.
Methods
Click the Methods tab to display a list of methods belonging to the JMX instance.
The Methods panel shows the name, inputs, and return values for each method
shown in the method table. All the methods listed can be run by either
double-clicking on the row the method belongs to in the table, or by right-clicking
the row and selecting Execute. Even though all methods are executable, not all the
parameters contained in the methods are supported by the JMX Browser. When a
method is chosen for execution and contains a parameter that is unsupported by
The values for the parameter can be set by clicking the button to the right of the
parameters, which displays a dialog similar to that used to set the values for
properties in the properties panel. All the same operations can be performed on the
value of the parameter as are available for setting the value of a JMX instance
property. When finished setting the value of the parameter, click OK to save the
value.
After all parameters have been filled in, the method is ready to be run or saved.
When running a method, the JMX Browser sends the data to the JMX instance and
the instance runs the method. After the method has been run, a new section is
displayed at the bottom of the Execution Method Dialog to display the output results
(return value) or an exception if the execution failed.
Click Save to save the current setup of the method for future execution on this or
any other JMX instance of the same class on any device. When you click Save, a
dialog appears that prompts you to enter the description for the task it will create.
The name can be anything you want, as long as it does not match an existing
saved task. These saved tasks are found under the JMX Browser task and can be
started by dragging the task to the target device.
Resource Monitors
The IBM Director Console provides a Resource Monitors task for setting thresholds
or recording monitorable attributes for a managed object. RMA V2R3 and later
Managed Objects are supported for this task. This section provides an example of
how to create both a threshold monitor and a recording monitor. Further details
about the Resource Monitors task can be found in the documentation for IBM
Director. For releases prior to V2R3, see Appendix D, “JMX Browser Plug-Ins,” on
page 249.
2. From the Resource Monitors task, select and drag the Disk Utilization attribute
from the Available Resources pane to the Selected Resources pane. At this
point, the value for disk utilization will appear and will be updated every few
seconds.
4. Enter a meaningful name and description for your monitor and configure the
other fields as appropriate. For this example:
6. To view all created threshold monitors, select View > View All Thresholds from
the main menu. You can edit or delete created thresholds from this view.
3. In the Selected Resources pane, right-click the value for Used Disk Space and
select Record. This action will start the Resource Monitor Recording dialog for
this attribute.
4. To create a new recording for this attribute, select File > New from the main
menu.
5. Enter a meaningful name for the recording in the Description field, and select a
value for the Duration field.
6. When finished, click OK to complete and start the recording. The recording work
for this monitor will be handled on the selected system in the store. The
interaction between the Director Server and that system will be a polling cycle
for the Director Server to gather the recorded data from the system.
Note: This polling cycle will use network bandwidth gathering the data.
Recording is an expensive operation that should only be utilized when
necessary to diagnose a problem.
7. In the Resource Monitors task frame, there is now an icon next to the attribute
that indicates that it has an active recording monitor.
8. To view all created recording monitors, select View > View All Recordings from
the main menu. Recordings that you create can be graphed, exported, deleted,
or stopped from this view.
Attention: To reduce network and processor load and to minimize the risk of
problems when restarting the Director Server, you must manually stop or delete all
active recordings before restarting the server. Leaving a recording in progress
across a Director Server restart can lead to unpredictable results.
User-Defined Monitors
From the JMX Browser task it is possible to define a new, monitorable attribute
based on many of the MBean attributes that are provided. The newly defined
monitors are displayed in the Resource Monitors task in a User Defined Monitors
folder, and you can use them in the same manner as the predefined monitors for
thresholds or recordings.
3. Enter a meaningful name in the Monitor Name field and select either String
Monitor or Gauge Monitor, if the option is available. Use a String Monitor to
define specific text values that will trigger events; use a Gauge Monitor to define
high and low numerical ranges to trigger the events.
4. When you are finished, click OK to complete. The user-defined monitor is now
available in the Resource Monitors task.
The plan is created and appears in the main IBM Director Console window as a
subtask under the Resource Monitors task.
The main of the console has a tri-split window and uses the same paradigm as the
main IBM Director Console. The leftmost pane is a tree view that displays a
hierarchy whose leaf nodes are device types. The center pane contains the list of
systems that have devices that match the selected device type in the left pane (a
selection in the left pane will filter the list in the center pane). The rightmost pane
shows the list of available tasks that can be performed on the device (or devices)
on the selected system (or systems). The tasks are started in the same manner as
other IBM Director tasks, through both context menu and dragging.
The Retail Peripheral Management task can be invoked on a target set of systems
or can be started untargeted. If started untargeted, device operations are scoped to
include all Retail-Managed Objects. In the targeted case, device operations include
the subset of Retail-Managed Objects from the original target list.
In the figure above, the peripheral type of MSR was selected. The center panel's
content will change to display all of the retail systems that have an MSR device.
The IBM Director Database information is used to determine whether a retail
system has the selected peripheral device. The information in the database is
accurate based on the last inventory collection request for each retail system.
The Systems with Peripheral panel will support the following menu functions:
Find Find the named system in the window.
View Change the view displayed in this panel.
Group by
Groups the devices displayed for the selected device type using certain
criteria. The choices are:
None No grouping is used.
Model Use the model information for grouping.
Manufacturer
Use the manufacturer information for grouping.
Firmware Level
Use the firmware level for grouping.
Note: If data for the selected grouping criteria is not available, a generic folder will
be added to group all devices that do not have that data. For example,
selecting the Group by Model choice with the POS Printer peripheral type
selected would change the view to as shown:
Invoking the inventory task from the Retail Peripheral Management Console will
start a custom Inventory Query Browser. Use this window to select which inventory
table to display for the specified peripheral type in the left-hand pane, and the
inventory results display in a table on the right.
Note: This task does not support Data Capture Policies created outside of IBM
director.
The Data Capture Policy Manager task in the tasks pane is used to manage
creation, deletion, and editing of Data Capture Policies. All created Data Capture
Policies are represented as subtasks of the Data Capture Policy Manager task.
These policies can then be associated with RMA Master Agent systems to create
and activate the Data Capture Policies. After Data Capture Policies are associated,
a Data Capture Invocation Status frame can be started from the association to
control and view details of the invocation and transfer of the Data Capture. Each of
these areas is explained in detail below. Also, for more information about the RMA
Data Capture infrastructure, see “Diagnostic Data Capture” on page 184.
The Data Capture Policy Manager frame is started in one of three ways, as shown
below.
Note: This is the only way to add new implementations to the GUI.
2. By double-clicking on the Data Capture Policy Manager task.
Note: This will not add any new implementations to the GUI.
3. By right-clicking the Data Capture Policy Manager task and selecting Open.
Note: This will not add any new implementations to the GUI.
The frame contains a menu bar and is split in three different panes.
Menu Bar
The menu bar contains two menus: File and Help.
File Menu
The File Menu (see Figure 78 on page 120) has multiple options:
Under each group will be Data Capture Policies. Policies can be in one to many
groups, but will always be displayed in the All Policies Group. Under each policy,
there will be two folders; one for the trigger list and one for the capture list. Under
each folder, there will be device types (that is, Retail Systems), and under each
type will be all of the different Data Capture Implementations associated to that
type.
v All Policies Group
– Policy 1...
– Policy 2, etc...
v Policy Group 1
– Policy 1
- Capture List
v Device Type x
– Implementation 1
– Implementation 2
v Device Type y
– Implementation 1
- Trigger List
v Device Type z
– Implementation 1
– Policy 2, etc...
v Policy Group 2, etc...
Creating a Data Capture Policy Group: To create a new Data Capture Policy
Group, open the File Menu and choose the New > New Policy Group option. This
Deleting a Data Capture Policy Group: To delete a Data Capture Policy Group,
right-click a Data Capture Policy Group and select the Delete option. This will open
a dialog box that will prompt for confirmation. Choose Yes to delete the object and
Creating a Data Capture Policy: To create a new Data Capture policy, right-click
a Data Capture policy group folder and choose the New Policy option. This will
open a dialog box that will prompt for the name of the policy. The policy will then be
added to the selected Policy Group and the All Policies Group. Also, a subtask for
association of this policy will be created under the Data Capture Policy Manager
task in the main IBM Director Console frame in an appropriate task group to match
the Policy Group Folder.
Deleting a Data Capture Policy: To delete a Policy from the Policy Tree,
right-click the Policy and choose the Delete option. This will open a dialog box that
will prompt for confirmation. Choose Yes to delete the object and all of its
sub-objects in the tree, or choose No to cancel. If Yes is chosen, the Policy will be
removed from any Policy Groups it is in and the All Policies Group and its Data
Capture Policy Manager subtask will be deleted. This will remove it from any
Managed Objects with which it was associated.
To delete all Policies under a Policy Group, right-click the Policy Group and choose
the Delete All Policies option. This will open a dialog box that will prompt for
confirmation. Choose Yes to delete all Policies in the Policy Group, or choose No to
cancel. If Yes is chosen, all the Policies will be removed from this Policy Group in
addition to the All Policies Group and their Data Capture Policy Manager subtasks
will be deleted.
To remove all Policies under a Policy Group, right-click the Policy Group and
choose the Remove All Policies option. This will open a dialog box that will prompt
for confirmation. Choose Yes to remove all Policies in the Policy Group, or choose
No to cancel. If Yes is chosen, all the Policies will be removed from this Policy
To export all Data Capture Policies in a Policy Group to file, right-click the Data
Capture Policy Group and choose the Export All Policies option. This will open an
export dialog that will prompt for the filename and location. The location can be
either on the IBM Director Console or Server.
To export all Data Capture Policies to file, select Export Menu from the File Menu
and choose the Export option. This will open an export dialog that will prompt for
the filename and location. The location can be either on the IBM Director Console
or Server.
Importing Policies from File: There are two ways to import Data Capture
Policies from file.
The first way is to select Import Menu from the File Menu and choose the Import
option. This will open an import dialog that will prompt for the filename and location.
The location can be either on the IBM Director Console or Server. This will create
all policies from the import file in the All Policies Group.
The second way is to right-click a Data Capture Policy Group and choose the
Import option. This will open an import dialog that will prompt for the filename and
location. The location can be either on the IBM Director Console or Server. This will
create all policies from the import file in the selected group and the All Policies
Group.
Finding a Data Capture Policy in the Tree: To find a Data Capture Policy in the
Data Capture Policies Tree, right-click in the white space in the tree and choose the
Find option. This will open a find dialog that will prompt for the name to find. This
will search the All Policies Group for this Data Capture Policy and select it.
A second way to find a Data Capture Policy in the Data Capture Policies Tree is to
right-click a Policy Group and choose the Find option. This will open a find dialog
that will prompt for the name to find. This will search the selected Policy Group for
this Data Capture Policy and select it.
Adding Device Types to a Policy: To add Device Types to a policy, select the
Device Type or Device Types from the Device Types Pane (Center Pane) and drag
them to the Policies Pane (Left Pane). They can be dropped onto a Trigger List
Folder, a Capture List Folder, a Policy, or a Policy Group Folder. If they are dropped
on a List Folder, then they will be added to that list. If they are dropped on a Policy
or Policy Group, a confirmation dialog will appear confirming that you want to add
them to all List Folders under that element.
Removing Device Types from a Policy: To remove a Device Type from the
Policy Tree, right-click the Device Type and choose the Remove option. This will
open a dialog box that will prompt for confirmation. Choose Yes to remove the
To remove all Device Types under a List Folder, right-click the List Folder and
choose the Remove All Device Types option. This will open a dialog box that will
prompt for confirmation. Choose Yes to delete all Device Types in the List Folder, or
choose No to cancel. If Yes is chosen, all the Device Types will be removed from
this List Folder.
Figure 90. Data Capture Policy List Folder right-click Context Menu
To remove all Data Capture Implementations under a Device Type, right-click the
Device Type and choose the Remove All Implementations option. This will open a
dialog box that will prompt for confirmation. Choose Yes to remove all Data Capture
Implementations for the Device Type, or choose No to cancel. If Yes is chosen, all
the Data Capture Implementations will be removed for this Device Type.
Before dragging any elements from this pane to the Data Capture Polices Tree (Left
Pane), customized instances of the Data Capture Implementation Groups must be
created. This process will use populated metadata from the Data Capture
Implementation Group that was retrieved from the Master Agent when the Group
was created. If the selected Group does not have any metadata, or the metadata is
blank, the custom implementation takes no parameters and will only prompt for a
name to be entered.
Removing Policy Associations: The Remove option will remove the association
of the Policy Manager subtask from the RMA Master Agent and terminate and
remove the Data Capture Policy on the RMA Master Agent.
Note: This option will not be available until the invocation has completed all
captures.
This prompts the user on whether to delete the record based on the IBM Director
Console Prompting Preferences: Ask for confirmation before deleting any
nonrecoverable item (Options > Console Preferences > Prompting
Preferences).
If the answer is Yes to the confirmation message, a command will be sent to the
RMA Master Agent to delete the selected invocation record. While the delete is in
progress a message will display. When deletion completes, the Capture History for
the selected policy will automatically refresh.
Note: This option will not be available until the invocation has completed all
captures.
The transfer moves the Capture Bundle file from the RMA Master Agent into the
data\rma\capture directory in the IBM Director installation directory on the IBM
Director Server using RMA File Streaming.
Note: For large data capture bundles, the progress message might reset to Ready
prior to completion of the transfer.
When the transfer completes, a confirmation dialog box will confirm that the transfer
was either successful, or that an error occurred. The file name of the data capture
bundle is displayed when the transfer succeeds, which will be similar in name to
this example:
alyzee_RetailWindows_Feb022010_160744.zip
Power management
The IBM Director console provides a power management interface for its managed
objects. This interface allows RMA-managed objects to Shutdown and Power Off,
Suspend, Restart, and Power On (Wake On LAN).
From here, the power management request is invoked like any other Director task.
This means that the request can be executed now or scheduled to run later. After
the job has been created or scheduled, an entry will appear under the managed
object. To see this entry, the display of jobs must be enabled under the
Associations menu in the Director Console.
The options available from the power management task menu will be different
based on both the type of the managed object and its current state (online or
offline). Table 20 outlines the supported options.
Note: Power management is only supported on RMA V2R4 and later agents.
Table 20. Power management support by Agent type
Shutdown and Power On2, 3, 6
Agent Power Off1 Restart 1
Suspend 1, 6
(Wake on LAN)
Linux General Yes Yes No Yes
Agent, Linux
Kiosk General
Agent
Windows Yes Yes Yes4 Yes
General Agent,
Windows Kiosk
General Agent,
SCS Lane
Master Agent, No Yes No No
SCS Boss, 4690
Controller Master (If the in-store (Wake on LAN
Agent Master Agent is packets are sent
powered off, all from the Master
communication Agent to other
is lost with the devices in the
other agents in store. The
the store.) Master Agent
must be online
for this to work.)
4690 Controller Yes Yes No No
General Agent
Notes:
1. Shutdown and Power Off, Restart, and Suspend are available when the
managed object is online.
2. Power On (Wake on LAN) is available when the managed object is offline or
suspended.
3. Power On (Wake on LAN) functionality requires that system BIOS and network
settings are configured properly to support Wake On LAN.
4. Suspend functionality requires that system BIOS and network settings are
configured properly to support Wake On LAN. The system hardware must be
able to support the suspend function.
5. Refer to the 4690 publications for the situations in which power management is
supported on a terminal.
6. Due to the continual network communication between a Master Agent and
General Agent in an RMA environment, the network card on a General Agent
must be configured to only allow management stations to bring the computer
out of standby or to only Wake on Magic Packets, for Suspend and Wake On
LAN to work properly.
Logs
Log data is produced for the Master Agent, General Agent, and Retail Extensions
for IBM Director.
RMA Agents
The logs for the Remote Management Agent are written to the following locations
depending on the operating system. If the product is installed on the default
location, then the location of the silogs directory is as follows:
v Windows: %SI_HOME%\silogs
v Linux: /opt/ibm/StoreIntegrator/silogs
v 4690 Classic: M:\rma\logs
v 4690 Enhanced: F:\rma\logs
The log files are named simgmt.X, with simgmt.0 being the most recent file. The
memory log files are named simgmt_m.X, with simgmt_m.0 being the most recent
file. The RMA Agents use Java logging. The logging configuration file,
mgmt_log.pro, is in the %RMA_HOME% directory. If the product is installed in the
default location, then the location of the %RMA_HOME% directory is as follows:
v Windows: C:\Program Files\IBM\StoreIntegrator\RMA261xxxx
v Linux: /opt/ibm/StoreIntegrator/RMA261xxxx
v 4690 Classic: M:\rma\lib
v 4690 Enhanced: F:\rma\lib
The mgmt_log.pro file is a modified copy of the default Java logging.properties file.
For detailed information on how to modify this file, see “Logging configuration” on
page 47.
Additionally, the RMA Agents have the output from the standard out and standard
error streams redirected to files, rma.stdout and rma.stderr, in the silogs directory.
Note: You can troubleshoot connection issues between IBM Director Server and
specific Master Agents by clicking Connection Log on the Retail Store
Devices tab of the Discovery Preferences window.
This information assumes that IBM Director is installed into its default location on
Windows (C:\Program Files\IBM\Director). The files or directories referenced in this
section will reside in the same subdirectories when IBM Director is installed to a
different location.
RAS Logging
The Retail Extensions for IBM Director use the IBM Director logging API. The
information provided is designed to enable log collection and the enablement of
tracing for Retail Extensions. For detailed information about troubleshooting IBM
Director, refer to the IBM Director documentation.
Log Collection: The easiest way to obtain the logs is to use the rasdump utility
to dump the logs, and to redirect the log output to a file. From the IBM Director log
directory, run the rasdump program and redirect the output to a file. This example
shows the command that redirects the logs to the file raslog.txt:
Settings: To change the logging level for the Retail Extensions for IBM Director,
the file twgras.properties must be edited to turn on tracing for the set of IBM
Director Components. This file is in the data directory for IBM Director. After editing,
the IBM Director Server must be restarted in order for the changes to take effect.
twg.ras.comps=0x00000000802C2B17
The hex codes in that example represent the combination of the hex codes for the
different components. The following components should be enabled when logging is
needed. Note that a value of -1 for twg.ras.comps will enable tracing for all
components, including many not listed here.
v Console: 0x0000000000000001
v Database: 0x0000000000000002
v Core Engine: 0x0000000000000004
v Inventory: 0x0000000000000010
v File Transfer: 0x0000000000000100
v Monitors: 0x0000000000000200
v Scheduler: 0x0000000000000800
v Task activation/deactivation: 0x0000000000002000
v Software Distribution: 0x0000000000040000
v Utility classes: 0x0000000000080000
v User administration: 0x0000000000200000
v Extra bits for OEM components (RMA): 0x0000000080000000
v SOXS Protocol (rarely needed): 0x0000000400000000
The following line in the file determines the maximum size of the logging file:
twg.ras.size=16384
Note: Increase this size to at least 65536 (64 MB) when you enable high logging to
capture a set of logging data.
JVM Diagnostics
IBM Director provides a command line interface for invoking tasks, using the dircli
program. This interface can be used for producing Java core dumps or Java heap
snapshots of the IBM Director Server JVM to help diagnose problems. To produce a
Java core dump, issue the dircli dumpjava command. To produce a heap dump,
issue the dircli dumpheap command. Java core text files and heap snapshot files
(.phd) are produced in the Director\classes directory.
All MBeans within a Java virtual machine are registered with an object repository
called an MBeanServer. The MBeanServer provides access to each MBean's
attributes and operations, and it handles the sending of notifications (events).
Mid-level management
The IBM Remote Management Agent uses a mid-level manager or proxy approach
to isolate the management tools from the infrastructure and to treat the store as the
point of management control. It does this by acting as a proxy for all of the
resources (JMX MBeans) in the store. This single store, single agent view becomes
the interface for all outside management actions. Collectively, this environment is
referred to as the Remote Management Agent. It introduces a new point of
collection and control in the store that becomes the focus of all outside
management actions, and is responsible for executing all management actions.
Figure 106 is a diagram of the mid-level manager environment.
Figure 106 shows how the IBM Remote Management Agent is modeled using the
mid-level manager approach. All instrumentation exposed on the managed devices
has a single implementation model and is provided by the vendor of the device
being managed, not by the management application vendor. The agents provided
by management tool vendors are neatly contained above the mid-level manager
(Master Agent) and have equal access to the system.
The following sections describe the primary components of the IBM Remote
Management Agent infrastructure.
RMA Component
| Two primary components make up the JMX infrastructure for the IBM Remote
| Management Agent environment: the General Agent and the Master Agent. Both are
| required by the IBM Remote Management Agent to manage the store. Their roles
| are distinguished by the MBeans that are attached to them, with the General Agent
| receiving MBeans designed for the client, and the Master Agent receiving those
| required for control of the store.
General Agent
The General Agent is designed for use within all endpoint devices within the store
network. Examples include the POS controllers and terminals, Mobile Tablets for
Retail, and kiosks. The General Agent, by default, includes MBeans to handle client
discovery, provide JVM information, and handle the configuration and forwarding for
| logging. It can be instantiated from inside an application JVM as an embedded
| agent, or run as a service in its own JVM.
| Embedded Agent
| Embedded Agents are General Agents that get instantiated within an application
| JVM. With RMA V2R6, embedded agents include a local or remote embedded
| agents, as discussed in “Embedded Agent (General Agent)” on page 156.
Master Agent
The Master Agent is the single point of access for all store resources. It is based on
the same functionality as the General Agent, and devices that it runs on can be
managed. To manage the rest of the devices in the store, the Master Agent has an
additional set of MBeans loaded at agent startup. This set of MBeans includes
those MBeans for managing the proxy relationships with General Agents running
within the store. Additionally, there are policy MBeans managing software
distribution, monitors, and notifications.
Note: Only one Master Agent can manage a given General Agent. The first Master
Agent to discover a General Agent will be the only agent that is allowed to
connect to that General Agent.
This functional hierarchy becomes more important for disciplines that require some
distributed policy control, such as software distribution or device monitoring.
Components responsible for managing a discipline on the Master Agent interact
with the appropriate General Agent MBeans to carry out an operation based on
notifications emitted when devices are online or offline.
MgmtMasterHealthMBean
The MgmtMasterHealthMBean is located at one place in the store: the Master Agent
running on the in-store processor. This component is responsible for:
v Listening for periodic heartbeats from agents running within the store.
v Maintaining information about each discovered agent.
v Controlling the emission of AgentLostNotifications.
v Triggering the construction and tearing down of connections between
management agents.
Note: Other functions on the Master Agent are driven by these notifications, such
as pending software distributions, application of monitors, and any other
specific response that might be required by management applications.
MgmtClientHealthMBean
This entity is located within each General Agent running within the store, and is
responsible for the following:
v Collecting agent information for use in the agent discovery protocol
154 RMA V2R6 User's Guide
v Issuing periodic discovery frames for consumption by the MgmtMasterHealthMBean
Additional information about Agent roles and their configuration can be found in
“Agent roles” on page 52.
|
| Figure 107. Embedded Agent model (Prior to V2R6)
|
| The design for embedded agents was changed in RMA V2R6 to include two
| embedded agent modes: local or remote. A remote mode embedded agent is
| discovered as a separate management object with its own JMX connection, which
| is the design for RMA V2R6 or earlier. Local mode embedded agents are
| discovered locally by an instance of the RMA Service agent. The embedded agent's
| instrumentation is accessible through the JMX Connection to the RMA Service
| Agent, through MBean proxies. As a result, the embedded agent's instrumentation
| is accessible only when an RMA Service agent is running and has discovered the
| agent. Figure 108 on page 157 illustrates an Embedded Agent model for RMA
|
| Figure 108. (V2R6 or later)
|
| In addition to specifying the agent mode (local or remote) when creating an
| embedded agent, an optional agent ID can be supplied to identify the JVM or
| application the agent is running in. This agent ID will be seen inside the JMX
| Browser in the IBM Director.
| Proxy ObjectNames
| The ObjectNames for embedded agent proxy MBeans conforms to a set of
| conventions in order to make the names unique, and in order to be able to easily
| locate MBeans registered with each embedded agent. In addition to the deviceId
| and systemId keys already added to MBean ObjectNames, an additional agentId
| key is added to each proxy ObjectName. Non proxy MBeans registered with the
| service agent will not have the agentId key:
|
|
| Figure 109. Proxy Objectnames
|
|
| Events
| When running in local mode, events sent by any embedded MBean are received by
| the service agent, where they are forwarded to the RMA event infrastructure for
| delivery up to a Master Agent. When the RMA Service agent is not connected to an
| embedded agent, events sent from within the embedded agent are not stored for
| later delivery to the service agent. However, once events are received by the
| service agent, they are stored and forwarded if the service agent is not connected
| to a Master Agent.
On the Master Agent, events emitted from all General Agent EventControlMBeans
and Master Agent MBeans are received by the NotificationProcessor and
forwarded to the MgmtNotificationControlMBean, where they are processed and
re-emitted for listening management applications. An EventControlMBean also exists
on the Master Agent, so that Management applications can receive events from all
agents in the store from one location. Figure 110 on page 160 outlines the RMA
Event Infrastructure.
When events are transmitted, the RMA event infrastructure updates a field in each
RtlNotification that has a MgmtDeviceInfo object corresponding to the agent that
sent the event. The MgmtDeviceInfo can be accessed from the
getOriginatingDevice() method. The Store ID in each MgmtDeviceInfo instance will
be null until it is received by a Master Agent.
Like JMX Notifications, an object can be supplied to the notification as user data. It
is important to use objects whose types can be resolved in all Java virtual
machines. Otherwise, RMA will be unable to deserialize event objects as they are
transferred between agents. Strings, Java primitive wrapper types (Integer, Double,
Long, and so forth), and collections of these types are viable options. Also, the
RtlNotification subclasses should not be further subclassed, for this same
reason.
EventControlMBean
The EventControlMBean forms the client portion of the RMA event infrastructure. It
acts as a central point of control and access for all events emitted on the RMA
Agent. On the General Agent, this MBean adds itself to all MBeans that emit
events. On the Master Agent, this MBean adds itself as a listener to the
MgmtNotificationControlMBean. Upon receiving an event, it either re-emits it or
buffers the event, based its connectivity status of the remote connection, (Master
Agent or Management Application), and whether store and forward is enabled.
Whenever a connection is closed, lost, or does not exist, events are buffered in the
order in which they were emitted. The buffer is periodically persisted so that it can
be restored at the point in which it left off whenever the agent is restarted. While
disconnected, events continue to be buffered, across one or more restarts of the
agent. When the remote connection is re-established, events in the buffer begin
being emitted, starting with the earliest event and continuing until the buffer has
been emptied.
com.ibm.retail.si.mgmt.eventcontrol.storeandforward=true
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.maxevents=200000
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.buffersizethreshold=1000
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.buffertimethreshold=3000000
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.eventExpirationTimeout=7
com.ibm.retail.si.mgmt.eventcontrol.storeandforward.eventExpirationCleanupFrequency=1
These properties can be changed by editing the simgmt.pro file, or through the
MgmtAgentConfigurationMBean, with which you can modify the simgmt.pro file.
| By default, an embedded General Agent does not support store and forwarding.
| The installed RMA Agent Services will, by default, participate in event store and
| forwarding, and will buffer 200 000 events. At an average event size of 500 bytes,
| this equates to roughly 100 MB of disk storage.
NotificationProcessor
The NotificationProcessor acts as a central collection point for all events. It
handles the fetching and delivery of all events from each remote agent. By calling
the addEventFetcher() method, a remote JMX Connection to a RMA Agent gets
registered with the RMA Agent. This registration begins the flow of events from the
RMA Agent to the NotificationProcessor. A separate thread is created to make
remote calls to the agent to fetch groups of events.
As events are fetched they are enqueued until they can be delivered. An overflow
file is used to store incoming events when the memory queue size reaches a
configurable threshold. The memory queue size, and other configuration parameters
for event fetching are described in Table 5 on page 43.
MgmtNotificationControlMBean
The MgmtNotificationControlMBean, running on the Master Agent, provides a single
point of access to a management application for all store events. By adding a
NotificationListener to this MBean, all store events can be accessed by a
management application in real time as they are emitted. It works by registering
with the NotificationProcessor, receiving all Notifications from any General Agent
or Master Agent MBean, performing some additional processing on them, and
retransmitting them.
Inventory
The function of inventory is to collect data about both hardware and software
components that comprise the system as a whole. It is the collection of specific
attribute information from the agent infrastructure. As such, the function of collecting
inventory is different than providing the correct information for collection. The
process of collection is best left to the management application vendors. However,
the requirements to define a base level of inventory to be made available to those
applications are discussed in the following paragraph.
Given that each software and hardware component can be represented by MBeans,
the best approach for introducing inventory data is to define Java Interfaces that
support the retrieval of this information. This lets the inventory collection be added
to the MBean that is most appropriate. The consumer of the inventory data, namely
management agents and applications, can search out the predefined interfaces
using normal JMX interactions. The IBM Remote Management Agent API defines
two MBean interfaces for software and hardware inventory,
MgmtSoftwareInventoryMBean and MgmtHardwareInventoryMBean. These interface
definitions are based on the work done by the Distributed Management Task Force
(DMTF) for both Desktop Management Interface (DMI) and Common Information
Model (CIM). This information is consistent with that used by the Tivoli management
software as well.
CIM Implementation
CIM is a schema used to model the elements that comprise a complete
manageable system. As a standard, it is owned and maintained by the DMTF and is
widely adopted as the mechanism to use when modeling and exposing components
for management. For example, all variants of Microsoft Windows since NT 4.0 have
used an interface known as Windows Management Infrastructure (WMI), an
implementation of the CIM model, as their internal and external management
instrumentation model.
The CIMAdapterMBean works by creating proxy MBeans for CIM instances whose
class name exists in the class filter in a CIM namespace. Adding a class name to the
filter not only creates proxies for CIM instances of that class, but for all of its
subclasses as well. Likewise, removing a class name from the class filter removes
all proxy MBeans created for that class and all of its subclasses. The MBean is
created with a default set of namespace configurations that can be modified
programmatically or from the JMX Browser from within IBM Director.
All CIM proxy MBeans are categorized under the component name CIM in the JMX
Browser as shown in Figure 111 on page 165.
CIMEventMapper interface
The CIMAdapterMBean receives indications from the CIMOM in the form of
javax.wbem.cim.CIMInstance objects. CIM indications are CIM instances
themselves, so their structure is defined in a MOF file. Because each event type
has a different structure and meaning, the corresponding JMX Notifications will also
be different. The easiest way to convert CIMInstances into JMX Notifications is
through Java code, with an instance of the
com.ibm.retail.si.mgmt.cim.CIMEventMapper interface. The association between
the CIM indication class and the CIMEventMapper implementation is made in the CIM
adapter configuration XML file, %SI_HOME%\user\rma\config\CIMConfig.xml.
UPOS indications
UPOS_SysMgmtEvent indications are emitted by the UPOS drivers for retail
peripherals. The indications emitted originate from all UPOS Status Update Events.
Refer to the UnifiedPOS specification for detailed information on all UPOS
indications.
RSS_SpNumericSensorAlert indications
RSS_SpNumericSensorAlert indications are emitted by the service processors in IBM
POS systems. The indications are emitted when the service processor changes
states, of which there are two: OK and Critical. The following summarizes the event
qualifiers and severities for each type of event:
v Retail.hw.serviceprocessor.sensor.numeric.state.critical (Alert)
v Retail.hw.serviceprocessor.sensor.numeric.state.ok (Info)
MSStorageDriver_FailurePredictEvent indications
MSStorageDriver_FailurePredictEvent indications are emitted on Windows systems
that have SMART (Self-Monitoring, Analysis and Reporting Technology) enabled
CIM configuration
The CIM Adapter configuration is stored in an XML file, %SI_HOME%\user\rma\
config\cim\CIMConfig.xml. Versions of RMA prior to V2R2 stored their CIM
configuration in the agent properties file, %SI_HOME%\user\rma\simgmt.pro. Upon
upgrading, those configuration settings are migrated. When RMA is installed fresh
or when the configuration XML file does not exist, it will be created with default
values. The following is an example:
<CIMConfig eventPollingInterval="30">
<namespace="root\cimv2">
<EventConfiguration>
<EventRegistration cimClass="UPOS_SysMgmtEvent"
mappingClass="com.ibm.retail.si.mgmt.cim.upos.UPOSEventMapper"/>
<EventRegistration cimClass= RSS_SpNumericSensorAlert
mappingClass= com.ibm.retail.si.mgmt.cim.RSSSensorDriverEventMapper />
</EventConfiguration>
<ClassFilter>
<ClassFilterElement lifeCycleEvents="true">Win32_BaseBoard</ClassFilterElement>
<ClassFilterElement lifeCycleEvents="true">Win32_BIOS</ClassFilterElement>
<ClassFilterElement lifeCycleEvents="true">Win32_CacheMemory</ClassFilterElement>
<ClassFilterElement lifeCycleEvents="false">Win32_LogicalDisk</ClassFilterElement>
...and so forth
</ClassFilter>
</NamespaceConfig>
<NamespaceConfig namespace="root\wmi">
<EventConfiguration>
<EventRegistration cimClass="MSStorageDriver_FailurePredictEvent"
mappingClass="com.ibm.retail.si.mgmt.cim.upos.MSStorage_FailurePredictEventMapper"/>
</EventConfiguration>
<ClassFilter>
<ClassFilterElement lifeCycleEvents="false">MS_SmBios</ClassFilterElement>
...and so forth
</ClassFilter>
</NamespaceConfig>
</CIMConfig>
The top level element, CIMConfig, has one attribute, eventPollingInterval. The
value of this attribute represents the number of seconds between polling requests
for CIM lifecycle events.
Note: Polling for lifecycle events can be a processor-intensive action, and you
should only enable it for CIM Classes whose instances are expected to
change after the system starts (that is, peripheral devices).
The CIM Adapter registers to listen for extrinsic indications based on its
configuration information. Each extrinsic indication CIM event class listed in the
configuration has a corresponding CIMEventMapper class, used when creating
RtlNotifications. The configuration XML for each namespace can contain an
EventConfiguration element, which can contain one or more EventRegistration
sub-elements. The EventRegistration elements require a CIM Event class, for the
type of events for which to listen, and the fully qualified classname of a
CIMEventMapper class, to be used for creating RtlNotifications from the CIM
Events.
Note: The configuration XML file should not be changed while the agent is running,
because it is possible that the changes will get overwritten by the agent. This
file can be edited when the agent is not running, or through the
CIMAdapterMBean interface. Changes made through the MBean interface
will not only be dynamic, but will also be persisted.
File Transfer
To support the transfer and consolidation of data from client devices, RMA includes
a file transfer interface. You can use this functionality to initiate file transfer
operations to and from the agent, so that, in the case of diagnostic captures,
captured data can be consolidated into one location following a completed capture.
Instances of the FileTransferConnection interface provide the file transfer
functionality. RMA includes an implementation of this interface,
RMAFileTransferConnection, for performing file transfer operations. For transfers to
and from agents running RMA V2, implementations exist for FTP and FTPS (FTP
over SSL). The following diagram illustrates how the file transfer interface fits into
the RMA architecture:
FileTransferConnection
This interface is implemented by all file transfer implementations, with the intent for
it to be FTP-like, having put() and get() methods that define a session-oriented,
synchronous transfer. Each connection has a connection ID (type long), which is
really a system timestamp of when it was created. This connection ID serves as a
key for identifying the connection with the FileTransferManager.
Storage
Each implementation and its class are stored as properties in the
MgmtAgentConfiguration. Each implementation is assigned a number, prefixed with
a common name, and its additional properties following the number:
com.ibm.retail.si.mgmt.xfer.impl.1.name=FTP
com.ibm.retail.si.mgmt.xfer.impl.1.class=com.ibm.retail.
si.mgmt.xfer.ftp.FTPConnection
com.ibm.retail.si.mgmt.xfer.impl.2.name=FTPS
com.ibm.retail.si.mgmt.xfer.impl.2.class=com.ibm.retail.
si.mgmt.xfer.ftps.FTPSConnection
Monitor policy
JMX enables the construction and control of distributed monitors, defined in
package javax.management.monitor, each of which watches a given attribute on an
MBean at a specified interval. When the value meets a defined condition, the
monitor issues a MonitorNotification to the managing infrastructure. At the Master
Agent, monitor notifications are wrapped in a RtlMonitorNotification and
re-emitted. JMX includes four monitor types:
v CounterMonitor: monitors numeric attribute values that only increase
v GaugeMonitor: monitors numeric attributes based on high and low thresholds
v StringMonitor: matches string attribute values
v BooleanMonitor: matches boolean attribute values
Setting up these monitors is an inherent of JMX, but After they are created, they are
not persisted. They must be recreated each time the General Agent (MBeanServer)
is restarted. The mechanism provided by the IBM Remote Management Agent for
automatically creating JMX monitors upon General Agent startup is through monitor
policies, managed by the MonitorManagerMBean on the Master Agent. Its job is to
create MonitorMBeans on General Agents based on registered policies. Information
contained within the policy includes:
v Information on which MBeans to monitor
v Which attribute on that MBean to monitor
v Information specific to the type of MonitorMBean being applied (such as the
stringToCompare attribute of a StringMonitor)
v How the policy should be applied
Policies can be applied to a single agent, all agents running on a single device, or
all agents running on all devices of a specific device type.
When the package wizard creates the package, it creates a single JAR file that
houses all of the package files, policy XML information, and deployment information.
The structure of the files contained in this file conforms to that required by the
RMASWPackageDistributorMBean. When the package is deployed to a set of devices
by IBM Director, this file will be sent to the Master Agent in each target device's
store and processed by the RMASWPackageDistributorMBean. This MBean sits on top
of the RMA Software Policy Manager and automates the creation of device software
policies within a store. The following diagram shows RMA software distribution, end
to end:
The following sections explain each portion of the RMA Software Distribution
infrastructure. The first section, “RMA Package Distributor MBean” on page 174,
explains the format of RMA package JAR files and how to deploy them by
interfacing with the RMASWPackageDistributorMBean. The section that follows,
“Software Distribution Policy” on page 178, summarizes how the RMA Master Agent
The policy.xml file is the software policy XML file that is sent to all clients. There
should be sections for each target platform. If a section is missing for a platform,
the policy fails on the client when it is run.
Package staging
When a package file has been created and exists on the Master Agent system, the
package can be staged and deployed to all target devices using the
RMASWPackageDistributorMBean. Using the MBean,
(com.ibm.retail.si.mgmt.swdist.pkgdist.RMAPackageDistributorMBean), to deploy
a package process involves two steps:
1. Staging the package, which involves preparing the package files and creating
RMA Software policies for each target device
2. Activating the RMA Software policies created for each target device
Using this information, this method submits a request for the package to be staged
asynchronously, and it returns immediately. The staging is performed
asynchronously because of the time required to stage a package. If the call were
synchronous and were being made over a remote JMX Connection, the socket
making the call could time out with a large package.
If any error occurs at any time during the staging process (expected or
unexpected), the extracted JAR file tree and the FTP server are cleaned up,
assuming that a connection can be made at that time.
The XML String supplied in the status notification should be parsed using the
PackageStatusXMLParser class. The following code sample is an example of its
usage:
// Parse XML reply
try {
StringReader reader = new StringReader(xmlReply);
PackageStatusXMLParser parser = new PackageStatusXMLParser();
PackageStatusXML status=(PackageStatusXML) parser.parseFromXMLSrc(reader);
DevicePackageStatusXML[] devStatusXmls=status.getAllDeviceStatus();
} catch (SAXException e3) {
// Handle
} catch (IOException e3) {
// Handle
}
It is important that the caller has notification listeners in place, whether the listeners
are added to the MgmtNotificationControlMBean, NotificationProcessor, or the
RMAPackageDistributorMBean directly. Otherwise, the response from the package
staging will not be received, and the status from the deployment will never be
obtained.
When each device policy has been activated, status information from clients is
relayed in the same way for all RMA Software Policies, using
MgmtSWPDeviceStateNotifications. Thus, just as it is important to be registered for
events prior to staging a package, it is important to be registered for policy status
events prior to policy activation.
The policy XML file contains information about resource files that must be obtained
to support the software policy, as well as the commands for one or more device
platforms. A client retrieves this pre-assembled XML file, along with the other
resource files that are identified for distribution. Because the client knows the
platform on which it is running, it can process information specific to its platform
from the policy XML file and run the software policy. The following is a simple
example policy XML file:
<SoftwarePolicy:SWPolicyDescriptor policyID="007">
<SoftwarePolicy:Description>TEST - Test Policy RMA</SoftwarePolicy:Description>
</SoftwarePolicy:SWPolicyDescriptor>
<SoftwarePolicy:SWPolicyResourceFiles >
<SoftwarePolicy:Component filename="multisuite.jar"/>
</SoftwarePolicy:SWPolicyResourceFiles>
<SoftwarePolicy:Installation>
<SoftwarePolicy:Exec executable="mkdir /PRE_REBOOT" expectedRC="0"/>
<SoftwarePolicy:Reboot/>
<SoftwarePolicy:Exec executable="mkdir /POST_REBOOT" expectedRC="0"/>
</SoftwarePolicy:Installation>
</SoftwarePolicy:SWPolicyTarget>
<SoftwarePolicy:SWPolicyResourceFiles >
<SoftwarePolicy:Component filename="instructions.txt"/>
</SoftwarePolicy:SWPolicyResourceFiles>
<SoftwarePolicy:Installation>
<SoftwarePolicy:Exec executable="cmd.exe" expectedRC="0">
<SoftwarePolicy:ExecArg value="/C"/>
<SoftwarePolicy:ExecArg value="mkdir c:\PRE_REBOOT"/>
</SoftwarePolicy:Exec>
<SoftwarePolicy:Reboot/>
<SoftwarePolicy:Exec executable="cmd.exe" expectedRC="0">
<SoftwarePolicy:ExecArg value="/C"/>
<SoftwarePolicy:ExecArg value="mkdir c:\POST_REBOOT"/>
</SoftwarePolicy:Exec>
</SoftwarePolicy:Installation>
The software policy XML file Installation portion simply creates a new directory
on a Linux or Windows client, reboots the device through a generic reboot
mechanism, and subsequently creates another directory after rebooting. In this
example, each executable portion of the software policy XML file looks similar for
both platforms, but in practice each device requires instructions with different
syntax, and possibly a different process to achieve the end result. More detail on
the construction of software policy XML files is provided in “Software Policy XML file
structure” on page 180. In this example, only the Windows based clients retrieve
resource files.
The process of applying a software policy to the devices in the store network is to
first create such a software policy. The software policy XML file must be created
separately and made available to the Remote Management Agent software policy
framework. The software policy entry must include the name of the software policy
XML file and file transfer information. This information varies based on the file
transfer implementation used. When the software policy is activated and is ready to
run, it then becomes the job of the SWPolicyMasterMBean to signal all client devices
impacted by the software policy either immediately or when these devices come
online. The MgmtSWPolicyClientMBean present on a device impacted by a software
policy receives the notifying signal from the master, pulls down the appropriate
Outer tags and attributes: The outer tags and attributes that define a software
policy XML file are:
<SoftwarePolicy:SoftwarePolicy
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.pc.ibm.com/ibm/si/mgmt
/com/ibm/retail/si/mgmt/swdist/SWPolicyXMLSchema.xsd"
xmlns:SoftwarePolicy="http://www.pc.ibm.com/ibm/si/mgmt">
</SoftwarePolicy:SoftwarePolicy>
Note: The namespace must be included before all element tags used within a
software policy XML file, but it is not required before the attributes of any
particular tag. The discussion in this section includes the namespace in all
tags where it is necessary.
Software policy content: The elements and attributes of the software policy
content provide a general description of the software policy, outline the resource
files needed for installation, and describe what types of actions are to be taken by
the software policy for each platform.
</SoftwarePolicy:SWPolicyTarget>
Software policy target device content: The target device tags contain two types
of elements: the resource files to be transferred and a set of commands to be
invoked.
The element tags that declare resource files that will be used with a target device
software policy action are specified as follows:
<SoftwarePolicy:SWPolicyResourceFiles>
<SoftwarePolicy:Component filename="resfile1.txt" size="11">
<SoftwarePolicy:Component filename="resfile2.txt" size="11">
</SoftwarePolicy:SWPolicyResourceFiles>
When creating software packages, it is common to want to invoke scripts, .bat files,
and operating system commands. Most of the time these commands need to be
invoked using the client operating system's shell interpreter in order to be invoked
correctly. The following lists the syntax for invoking shell command or scripts on
various platforms:
v Windows: cmd.exe /C <program or command>
v Linux: /<path>/<program or command>
v 4690: command.286 -C <program or command>
Note: Software distribution commands on 4690 are invoked using the 4690
Remote Command Processor (RCP). Thus, the syntax of the commands
in the policy must be the same as when the commands are invoked using
RCP.
Note: Not all operating systems parse quoted shell input in this manner, so the
software policy developer must be aware of the operating system capabilities
and limitations when developing the software policy.
Creation of the software policy XML file provides a client payload that directs the
client in the action of the software policy. The target device instructions rely on the
device operating system to support shell command invocation with appropriate
privileges to accomplish the operations requested by the software policy. The
process of selecting the instructions (or developing new ones) that include a
software policy is beyond the scope of this design.
If there is no value for a variable, no value is substituted, and the policy will
probably fail. The following table shows defined variables:
Table 31. Policy XML variables
Variable name Value supplied
client.target.path The destination directory on the client for policy files, supplied with
the policy.
rma.data.dir The path to the RMA Configuration Directory (%SI_HOME%\user\
RMA)
By registering an implementation of this MBean with the RMA General Agent, the
MBean can participate in the store-wide data capture facilities provided by RMA.
Capturing Data
A capture is performed by calling the capture() method on the DataCaptureMBean. It
takes as arguments a constant indicating the capture type and a String array of
implementation specific parameters. Each implementation determines the format
and purpose of these parameters. An in-progress capture can be aborted by calling
the abortCapture() method.
The capture type is a constant that indicates whether the capture is being manually
triggered (SOLICITED_TYPE) or performed as the result of a system detected error
(UNSOLICITED_TYPE). This capture type is used by the Master Agent to trigger
other policy based actions in response to either type of capture.
The return value from the capture() method is a capture ID String. This unique ID
is used to refer to the capture in other query and control methods on the MBean.
The DataCaptureNotification instance created will have the following values for
the fields defined by javax.management.Notification:
Note: It is important to note that captures can take place over extended periods of
time. Thus it is important that calls to the capture() method should not block
for a long period of time. Although it is not required, captures taking
extended periods of time should be run in a separate Thread. This problem
can be avoided by extending the DataCaptureMBeanSupport class.
Capture Processing
The issuing of a DataCaptureNotification is a means for indicating that a capture
has completed to the Master Agent and to any management application.
Management applications can listen for DataCaptureNotifications and perform
application specific processing after captures have completed. A typical response to
the completion of a data capture is to transfer the files from the agent computer to a
central location. The RMA General Agent supports data retrieval through the
FileTransferMBean. Figure 116 illustrates this process:
DataCaptureMBeanSupport
The DataCaptureMBeanSupport class is an abstract class that provides a default
implementation of the DataCaptureMBean interface. It handles much of the overhead
for a capture, so that the implementer can focus on the details of capturing data.
Among the features that this abstract class provides are:
v Extends NotificationBroadcasterSupport for sending Notifications.
v Maintains the status of captures (Completed versus In Progress)
v Queues capture() method calls
v Invokes capture() method calls in a separate Thread
v Generates unique capture identifiers.
When a call to abortCapture() is made, the Thread for a capture is ended. After
ending capture execution, a call is made to the captureAborted() method. Like the
captureCompleted() method, this method is provided as a hook for subclasses to
perform any processing after the capture has been aborted. The default
implementation of this method sends an unsuccessful DataCaptureNotification
with an error message indicating that the capture was aborted, and with the capture
filenames in the DataCaptureRequest at that time.
RMADataCaptureMBean
RMA includes an implementation of the DataCaptureMBean interface, the
RMADataCaptureMBean, which captures useful problem determination data from an
RMA agent. RMA memory logging triggers the RMADataCaptureMBean to capture data
when a problem occurs. The RMADataCaptureMBean captures the following data when
invoked:
v Logs
– rma.stderr
– rma.stdout
– RMA CIM tracing (rmacimtrc.log)
– The regular logging file(s) specified by the base FileHandler pattern in the
logging configuration file (default is simgmt.*)
– The memory logging file(s) specified by the RMALogHandler pattern in the
logging configuration file (default is simgmt_m.*)
v Data
– Triggers a Java core dump and then captures the javacore* file.
– Captures the latest heapdump* file, provided it was written recently (in the last
10 minutes).
DataCaptureManagerMBean
At the center of the capture infrastructure is the DataCaptureManagerMBean, which
manages data capture policies and listens for DataCaptureNotifications emitted by
DataCaptureMBeans running in the store (including the Master Agent). The receipt of
these notifications triggers file transfers of captured data and captures on other
DataCaptureMBeans running on devices in the store. Figure 118 on page 190
illustrates this process. In this diagram, there is an capture policy active on the
Master Agent. An unsolicited capture occurs on LaneX, resulting in the Lane
sending a Data Capture Notification of type UNSOLICITED (1). When the
notification is received by the Master Agent, the manager will detect that the capture
applies to the active policy, resulting in the transfer of the Lane's capture files (2)
and the invocation of a solicited capture on the controller CC (3). Since CC is in the
policy's capture list, any unsolicited capture by a Lane will result in a solicited
capture on CC. When the solicited capture completes on CC (by emitting a
DataCaptureNotification of type SOLICITED (4)), its files are transferred to the
Master Agent (5) and a capture bundle file will be created containing the capture
files from both LaneX and CC.
DataCapturePolicy class
A DataCapturePolicy object is a container object used by the DataCaptureManager
to store policy configuration information. Instances of this object are registered with
the DataCapturePolicyRegistryMBean, and then activated. Once activated, the
DataCaptureManagerMBean will register NotificationListeners with MBeans listed in
the policy to receive DataCaptureNotifications. These notifications will initiate file
transfers on completed captures as well as captures on the other
DataCaptureMBeans defined in the policy.
An example of the trigger list/capture list concept comes from the policy depicted in
Figure 118 on page 190. The desired behavior of the policy is to initiate a solicited
capture on a capture MBean "GenericLogCapture running on 4690 controller CC in
response to an unsolicited capture from a Self Checkout Lane MBean
SCSDataCapture. To create this policy, you would supply a new policy with the
following information:
v Trigger List: A PolicyApplicationList with one
DeviceTypeCapturePolicyApplication, pairing the SCSDataCaptureMBean with the
SCS-Lane Role.
v Capture List: A PolicyApplicationList with one
DeviceCapturePolicyApplication, pairing "GenericLogCapture" with the device
ID "CC".
Policy invocation
When a policy is triggered on an agent (either manually or by the arrival of an
unsolicted capture event), a CapturePolicyInvocationPlan is created to determine
which captures to invoke. A CapturePolicyInvocationPlan object takes a policy's
capture list, a policy's trigger list (optional), and a list of all online agents and
returns a list of <MBean, Agent> pairs that represent captures to invoke. The pairs
represent an aggregation because it is possible that an agent could be affected by
more than one policy application (device type applications in particular).
Note: If an agent is not online at the time the policy is invoked, then it will not get
invoked later under that invocation.
The applicable MBeans defined in the policy that are online at that time will have
captures initiated (by way of the DataCaptureMBean interface's capture(String,
long) method). The String is the type of capture (solicited or unsolicited), and the
long is the capture timeout. While these captures are taking place, the policy will be
in a blocked state, where the MBeans defined in the policy will not be triggered
again on that agent until the policy completes successfully or unsuccessfully. This is
to keep all captures for the policy into a single contained unit, and to prevent a
backlog of captures.
Policies will always act independently of one another. In other words, if an MBean is
defined in another active policy, it will be called to capture even though it might be
in the middle of a capture from another policy. The DataCaptureMBean will provide a
base implementation, DataCaptureMBeanSupport, that handles the execution of
captures in a separate Thread.
The transfer will be performed using each device's FileTransferMBean using the
RMA File Streaming implementation. File streaming, added in V2R2, is the only way
to easily move client files to a specific location on the Master Agent. As a result,
The capture bundle ZIP file contains the transferred capture files as well as an XML
history log (history.xml) located in the root of the bundle ZIP file. This log contains
all of the history information for that invocation, and it can be parsed and used by a
management application. The log is in the same format as that stored on the
Master Agent, except that it is a single capture history and has only one invocation.
But because it is in the same format, you can use the DataCaptureHistoryParser
class to parse it.
It is also important that the capture history information on the Master Agent be
maintained, since the Master Agent cannot be notified asynchronously of all
possible external actions that would require the information to be updated. For
example, a capture file on a client could get deleted by some external process or
user. Only by going back to the client and synchronizing will the Master Agent know
and respond. This section describes how both of these functions are handled.
File Transfer Error Handling and Retries: The transfer directory, the location on
the Master Agent where capture files are transferred, is a staging directory, or a
temporary storage location. As each capture file is transferred from the client, the
capture history updated to reflect the fact that it has been transferred. Only when
the bundle zip file has been created successfully with all capture files will the
transfer directory for the invocation be deleted. Until then, the capture files will
remain. This means that a transfer error does not fail a capture, it only delays the
completion of it.
For the purposes of building and compiling MBean classes and management
applications, you can use the IBM Java 6 compiler. When running management
applications, you can use an IBM Java 6 JRE. When creating extension MBeans to
be registered with the RMA agent, however, you must pay attention to the JRE
version of the target platform. All RMA Agents run with the IBM Java 6 JRE on
Windows, Linux, or 4690 Enhanced. The RMA Agent on 4690 Classic runs with the
1.4.2 IBM JRE.
Since JMX is not included with Java 1.4, a JMX implementation must be added to
the class path when running inside a 1.4 JVM. Additionally, the .class files need to
be compiler option -target 1.4. The supported JMX implementation for 1.4 IBM
JRE's is MX4J, which comes in the form of two JAR files, mx4j.jar and mx4j_rmt.jar,
included in the 4690 Classic installation of RMA in the M:\rma\lib directory, and also
included with Store Integrator.
Note: To extend the class path, you can change the value of the system
environment variable %RMA_CP_EXT%.
When starting your application, you also need these additional parameters:
-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
-Dcom.ibm.retail.si.mgmt.config.dir="%SI_HOME%\user\rma"
Each takes as arguments the Java program name and all program arguments. For
example, to run the fictitious Java program com.test.MyTest with the RMA class
path on Windows, issue the rmaJava.bat com.test.MyTest command.
The RMAFile class does not extend java.io.File, but it does provide the same
interface. It also provides methods for creating implementation-specific InputStream,
OutputStream, and RandomAccessFile objects. The determination as to when to use
RMAFile should be made based on the target platforms on which the extension
MBeans will run. If it is known that an extension will not be run on a 4690 OS, then
regular Java APIs can be used when working with files. Otherwise, the RMAFile
class provides a platform neutral option for file access.
For example:
"Domain:name=name,foo=one,bar=two,more=three"
JMX does not provide guidance or rules for the application of these names. That is
left to the MBean provider. In order to provide some organization of MBeans within
the IBM Remote Management Agent management infrastructure, some rules and
conventions should be applied when naming MBeans.
The name space specified by this infrastructure is segmented into three parts:
1. System-wide identification
2. Component identification
3. Device content (component/application specific data)
System-wide identification
These system-wide identification elements are always obtainable from the
General/Master Agent, using the single instance of ObjectNameFactory
provided in the Remote Management API. Using the createObjectName
methods of this class, it is possible to build a name that is consistent with
the object naming conventions described in this document where these
elements are automatically added.
Putting all of the pieces together, a component builds a base ObjectName by first
constructing the component specific portion and then acquiring the system-wide
information from the from the agent's ObjectNameFactory instance. Prior to V2R2,
the ObjectNameFactory was a singleton (There is still a singleton, but its use is
deprecated). The MgmtAgent interface now provides an ObjectNameFactory for the
agent. The following example illustrates how to create an ObjectName using the
ObjectNameFactory:
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import com.ibm.retail.si.mgmt.MgmtAgent;
import com.ibm.retail.si.mgmt.MgmtAgentFactory;
import com.ibm.retail.si.mgmt.ObjectNameFactory;
MBean registration
| Registration of MBeans depends on whether the General Agent is running as an
| embedded agent or as the installed service.
import com.ibm.retail.si.mgmt.MgmtAgent;
import com.ibm.retail.si.mgmt.MgmtAgentFactory;
import com.ibm.retail.si.mgmt.MgmtException;
import com.ibm.retail.si.mgmt.ObjectNameFactory;
| When using RMA V2R6 or later jar files for embedded agents, you will need to
| make sure you include soxs.jar and sibeep.jar in their classpath for your
| applications.
| The caller of the factory method determines the mode the agent should run. If no
| agent mode is supplied, remote mode is the default. Local mode is the
| recommended mode for embedded agents not running within 4690 Terminals, as it
| will prevent multiple agent objects for a single system from being discovered and
| displayed on the IBM Director console. Any Java applications running in a 4690
| terminal should supply remote mode because the RMA Service agent does not run
| there. If the embedded agent runs in local mode, it will never get discovered
| because there is not a real agent to discover it.
| The agent ID parameter uniquely identifies the agent among other embedded
| agents on the system, and is used by the RMA service agent to separate the
| MBeans from different embedded agents. Strings that identify the application
| running in the JVM are recommended. The intention is for the agent ID not to
| change, and should be compiled into the code that starts the agent. If an agent ID
On 4690 V6, the JAR files are added to the RMA classpath by adding the paths to
the RMACPEXT user logical filename.
import java.io.IOException;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import javax.naming.Context;
import mx4j.remote.soxs.SoxsConnector;
import com.ibm.retail.si.mgmt.MgmtConst;
import com.ibm.retail.si.mgmt.MgmtDeviceInfo;
import com.ibm.retail.si.mgmt.MgmtMasterHealthMBean;
import com.ibm.retail.si.mgmt.masteragent.MasterAgent;
import com.ibm.retail.si.mgmt.masteragent.auth.MasterAgentCredentialEncoder;
import com.ibm.retail.si.mgmt.remote.DefaultRMACredentialEncoder;
import com.ibm.retail.si.mgmt.remote.RMACredentialEncoder;
import com.ibm.retail.si.mgmt.remote.RMAJMXCredentials;
import com.ibm.retail.si.mgmt.remote.RMASocketFactory;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
/**
* Returns the connection Id from the JMXConnector
*/
public String getConnectionId() {
if(connectionId == null) {
try {
connectionId = connector.getConnectionId();
} catch (IOException e) {
// Error
}
}
return connectionId;
/**
* Returns the agent information for the connected Master Agent
*/
public MgmtDeviceInfo getMasterAgentDeviceInfo() {
return agentDeviceInfo;
}
/**
* Closes the JMX Connector, if one exists
*/
public void closeAgentConnection() {
if(connector != null) {
try {
connector.close();
} catch (IOException e) {
// Ignore
}
agentConnection = null;
connectionId = null;
agentDeviceInfo = null;
}
}
/**
* Obtains the MBeanServerConnection to the agent
*/
public MBeanServerConnection getAgentConnection() {
if(agentConnection == null) {
createAgentConnection();
}
return agentConnection;
}
agentConnection = connector.getMBeanServerConnection();
/**
* Queries the Discovery MBean on the Master Agent for its
* agent information, a MgmtDeviceInfo instance
*/
private void initAgentDeviceInfo() {
ObjectName discoveryName = MgmtUtils.getObjectName(agentConnection,
MgmtMasterHealthMBean.OBJECT_NAME_ID);
if(discoveryName == null) {
// Error
} else {
try {
agentDeviceInfo = (MgmtDeviceInfo) agentConnection.getAttribute(discoveryName, "DeviceInfo");
} catch (AttributeNotFoundException e) {
// ...
} catch (InstanceNotFoundException e) {
// ...
} catch (MBeanException e) {
// ...
} catch (ReflectionException e) {
// ...
} catch (IOException e) {
// ...
}
}
/**
* Registers the JMX Connection Id and the local IP address with the Master Agent,
* so that there will be an entry for the address in the agent’s AgentAuthList.
* This allows RMAFileTransferConnections to be made
*/
private void registerConnectionAndIp() {
ObjectName discoveryName = MgmtUtils.getObjectName(agentConnection,
MgmtMasterHealthMBean.OBJECT_NAME_ID);
if(discoveryName == null) {
// Error
} else {
try {
InetAddress remoteAddress = InetAddress.getLocalHost();
agentConnection.invoke(discoveryName, "addConnectionAndAddress", new Object[]
{getConnectionId(), remoteAddress.getHostAddress()},
new String[]{String.class.getName(), String.class.getName()});
} catch (InstanceNotFoundException e) {
// ...
} catch (MBeanException e) {
// ...
} catch (ReflectionException e) {
// ...
} catch (IOException e) {
// ...
}
}
}
}
V2R4 and earlier: On Master Agents running RMA V2R4 and earlier, proxy
MBeans are registered on the Master Agent for every MBean on each General
Agent. You can locate a General Agent MBean by using the query methods on the
MBeanServerConnection interface, such as queryNames(). Using the queried
ObjectName and the MBeanServerConnection, you can get and set attributes (using
getAttribute() and setAttrbute()) and you can invoke methods (using invoke()).
The following code is an example of how to invoke the search method on all
MBeans with an MBean ID of Test on agent test.10151, with a string argument of
foo, and a primitive integer argument of 5:
package com.ibm.retail;
import javax.management.MBeanServerConnection;
import javax.management.MBeanServerInvocationHandler;
import javax.management.ObjectName;
import com.ibm.retail.si.mgmt.masteragent.ProxyManagerMBean;
The object name of this MBean can be queried using the MBeanServerConnection
object. For example:
MBeanServerConnection mbs = /* get connection to the agent */
The use of Notification Listeners should suffice for most management applications.
Besides being simpler to use, this method uses less resources on the Master
Agent. Use of the NotificationProcessor starts extra threads for event transport
and delivery, creates separate memory buffers on the Master Agent for each remote
JMX connection, sets up a temporary storage locations on the Master Agent for
each remote JMX connection, and uses disk space on the client side to temporarily
store events that overflow from the memory capacity being reached. While the
speed of event transport using both methods is basically the same, the use of the
NotificationProcessor uses additional threads and storage not required by remote
JMX alone.
package com.ibm.retail;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanServerConnection;
import javax.management.Notification;
import javax.management.NotificationListener;
import javax.management.ObjectName;
import com.ibm.retail.si.mgmt.notifications.MgmtNotificationControlMBean;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
if(mgmtNotCtrlName == null) {
// Error
} else {
// MBean found, add the listener
try {
agentConnection.addNotificationListener(mgmtNotCtrlName, myListener, null, null);
} catch (InstanceNotFoundException e) {
// MBean not found
} catch (IOException e) {
// Error making remote call
}
}
}
Note: Some lines of code are split over two lines to fit on the page.
import java.net.InetAddress;
import java.util.LinkedList;
import java.util.List;
import javax.management.MBeanServerConnection;
import javax.management.Notification;
import javax.management.ObjectName;
import com.ibm.retail.si.mgmt.MgmtDeviceInfo;
import com.ibm.retail.si.mgmt.MgmtException;
import com.ibm.retail.si.mgmt.eventcontrol.EventControlMBean;
import com.ibm.retail.si.mgmt.notifications.NotificationProcessor;
import com.ibm.retail.si.mgmt.notifications.NotificationProcessorData;
import com.ibm.retail.si.mgmt.notifications.NotificationProcessorListener;
import com.ibm.retail.si.mgmt.util.DiskOverflowStorage;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
// Use the local host name as the identifier for ourselves to the MA
String localHostName = InetAddress.getLocalHost().getHostAddress();
if(eventCtrlName == null) {
// Error
} else {
/*
* MBean found, register connection. After registration, events will begin being fetched and
delivered to our listener.
*
* Parameters:
* -The ObjectName of the EventControlMBean
* -The MBeanServerConnection to the Master Agent
* -The Master Agent’s agent information
* -Our host name as an identifier for ourselves
* -The connection Id of our remote JMX Connection
*/
notProc.addEventFetcher(eventCtrlName, agentConnection, connectionHelper.getMasterAgentDeviceInfo(),
localHostName, connectionHelper.getConnectionId());
}
} catch (Exception e){}
}
/**
* @see com.ibm.retail.si.mgmt.notifications.NotificationProcessorListener#receiveNotifications
(javax.management.Notification[], com.ibm.retail.si.mgmt.MgmtDeviceInfo)
*/
public void receiveNotifications(Notification[] notifications, MgmtDeviceInfo origDevice) {
for(int i=0; i < notifications.length; i++) {
receiveNotification(notifications[i], origDevice);
}
}
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#getFilePath()
*/
public String getFilePath() {
// Return path to storage file
return null;
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#insertDataBlock(byte[])
*/
public void insertDataBlock(byte[] data) throws MgmtException {
// store data
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#isEmpty()
*/
public boolean isEmpty() {
// True if we have event data
return false;
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#recreateStorage()
*/
public DiskOverflowStorage recreateStorage() throws MgmtException {
// Delete the file and recreate
return null;
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#restoreMemoryQueue()
*/
public List restoreMemoryQueue() throws MgmtException {
// Read memory contents from disk
return new LinkedList();
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#retrieveDataBlock()
*/
public byte[] retrieveDataBlock() throws MgmtException {
// Retrieve the next block of event data
return null;
}
/**
* @see com.ibm.retail.si.mgmt.util.DiskOverflowStorage#saveMemoryQueue(java.util.List)
*/
import java.util.Properties;
import com.ibm.retail.si.mgmt.xfer.FileTransferConnection;
import com.ibm.retail.si.mgmt.xfer.FileTransferException;
import com.ibm.retail.si.mgmt.xfer.FileTransferManager;
import com.ibm.retail.si.mgmt.xfer.ftp.FTPConnection;
import com.ibm.retail.si.mgmt.xfer.stream.RMAFileTransferConnection;
Common properties
Table 33. Common properties
Name Description
com.ibm.retail.si.mgmt.xfer.impl (Required) Identifier for the
implementation, such as STREAM (RMA
File Streaming), FTP, or FTPS
RMAFileTransferConnection properties
Table 34. RMA File Streaming Properties
Name Description
com.ibm.retail.si.mgmt.xfer.stream.hostname (Required) Host name or IP Address
to connect to
com.ibm.retail.si.mgmt.xfer.stream.port (Optional) Overrides the port to
connect to. Defaults to 10190
com.ibm.retail.si.mgmt.xfer.stream.credentials (Required) A byte array of encoded
credential information. The credential
format is the same as for making
JMX connections to that agent
FTPConnection properties
Table 35. FTPConnection properties
Name Description
com.ibm.retail.si.mgmt.xfer.ftp.username (Required) FTP Username
com.ibm.retail.si.mgmt.xfer.ftp.password (Required) FTP Password
com.ibm.retail.si.mgmt.xfer.ftp.hostname (Required) FTP Server host name or IP
FTPSConnection properties
Table 36. FTPSConnection properties
Name Description
com.ibm.retail.si.mgmt.xfer.ftp.username (Required) FTP Username
com.ibm.retail.si.mgmt.xfer.ftp.password (Required) FTP Password
com.ibm.retail.si.mgmt.xfer.ftp.hostname (Required) FTP Server host name or IP
com.ibm.retail.si.mgmt.xfer.ftp.port (Optional) Override the default port of 21
xferConn.cd("/home/user");
xferConn.get("remotefile.dat", "C:\localfile.dat");
xferMgr.disconnect(connectionId);
} catch (FileTransferException fte) {
// Handle
}
Transfer types
The FileTransferConnection interface supports both blocking and non-blocking
forms of transfers, corresponding to the put() and get() methods and the
putAsync() and getAsync() methods, respectively. The difference between the two
types is that calls to put() and get() block until the transfer completes. Calls to
putAsync() and getAsync() return after the transfer successfully begins and wait in
the background for the transfer to complete. A callback object implementing the
FileTransferEventListener interface is required when making asynchronous calls.
When the transfer completes, either successfully or unsuccessfully, a call is made
to the transferCompleted() method of the callback object to signal completion.
Note: When invoking operations on this MBean over a remote JMX connection,
socket timeouts could occur when the operations take a large amount of
time. In particular, invoking the operations such as put() and get() on large
files could take a long period of time, possibly resulting in a socket timeout
on the remote JMX call. For transfers that take a large amount of time, an
asynchronous call can be made to ensure that the remote call will not time
out.
Transfer progress
The asynchronous putAsync() and getAsync() calls also support the ability for
transfer progress to be reported by percentage increments via callbacks. A typical
use for these notifications would be in a management application to implement a
progress bar. Transfer progress is reported via a callback to the
transferProgress() method in the FileTransferEventListener interface. The
FileTransferProgress object returned will include the percentage complete in
addition to the information reported by a transfer completion.
In making asynchronous calls, the transfer progress arguments are optional, and
can range 1-100. Values outside of this range will be ignored. The value supplied
represents the interval at which the Notifications are emitted. For example, a value
of 5 will emit a Notification after 5 percent, 10 percent, 15 percent, and so on, up to
100 percent.
The intervals at which Notifications are emitted are calculated internally based on
blocks of 4 kb (FTP and FTPS). If files are too small, or sizes do not fall on a 4 kb
boundary, the increments will get rounded up.
Calls to getAsync() require a file size to be supplied with the call for calculating the
percentage increments. This is because the FTP protocol does not have a way of
obtaining a remote file's size. If the size and/or increments supplied are not
consistent, then the only Notification sent will be at 100 percent.
When managing monitor policies on the Master Agent programmatically, two actions
are required:
v Creating and registering a MonitorPolicy object with the MonitorManagerMBean.
v Creating and registering a MonitorPolicyAction object with the
MonitorManagerMBean.
MonitorPolicy object
A MonitorPolicy object contains the details about the JMX MonitorMBean to be
created on the Master Agent. Specifically, it contains:
v Fully qualified class name of the type of monitor to create
(javax.monitor.CounterMonitor)
v A JMX AttributeList containing any Attributes to be set on the MonitorMBean
when it is created (for GaugeMonitors, the HighThreshold and LowThreshold
attributes must be set).
v ObjectName query string to search for the MBeans
v Description for the Monitor
MonitorPolicyAction object
A MonitorPolicyAction object is for associating a MonitorPolicy with its target
device(s), that can be individual agents, all agents on a single device, or all agents
on all devices of a particular device type. The subclasses of MonitorPolicyAction
each represent a different type of policy application (single agent, device type, and
so on).
The following example creates a MonitorPolicy for the TotalMemory attribute on the
JVMEnvironmentMBean and registers it to be applied on all General Agents running
on Linux:
Data Capture policies provide an automated way of transferring diagnostic data and
invoking other captures. After a policy is active, it will cause capture files from
completed captures to be transferred, solicited captures to be invoked on capture
MBeans in the policy's capture list, and create capture bundle .ZIP files from
completed invocations. This section provides examples of how to programmatically
manage data capture policies. These examples could be used to create a
management application that connects to the Master Agent, manages policies, and
listens and/or query for invocation status.
Note: The Data Capture Policy Manager task in IBM Director already provides this
functionality.
Note: Some lines of code are split over two lines to fit on the page.
package com.ibm.retail;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import com.ibm.retail.si.mgmt.MgmtConst;
import com.ibm.retail.si.mgmt.capture.DataCaptureConst;
import com.ibm.retail.si.mgmt.capture.DataCaptureManagerMBean;
import com.ibm.retail.si.mgmt.capture.DataCapturePolicy;
import com.ibm.retail.si.mgmt.capture.DataCapturePolicyImpl;
import com.ibm.retail.si.mgmt.capture.DataCapturePolicyRegistryMBean;
import com.ibm.retail.si.mgmt.capture.DeviceCapturePolicyApplication;
import com.ibm.retail.si.mgmt.capture.DeviceTypeCapturePolicyApplication;
import com.ibm.retail.si.mgmt.capture.GenericLogCaptureMBean;
import com.ibm.retail.si.mgmt.capture.RMADataCaptureMBean;
import com.ibm.retail.si.mgmt.policies.DeviceTypePolicyApplication;
import com.ibm.retail.si.mgmt.policies.PolicyApplicationList;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
/*
* Create the policy’s trigger list. The list consists of one entry:
* <All device types, All General Agents, RMADataCaptureMBean>
*/
PolicyApplicationList triggerList = new PolicyApplicationList();
triggerList.addPolicyApplication(new DeviceTypeCapturePolicyApplication(MgmtConst.dTypeAll, MgmtConst.GENERAL_AGENT_DEFAULT_ROLE,
DeviceTypePolicyApplication.WILD_CARD, RMADataCaptureMBean.OBJECT_NAME_ID));
/*
* Create policy’s capture list. The list consists of two entries:
* <MyDevice1, GenericLogCaptureMBean, {C:\logs\*.log,C:\data\*.dat}>
* <MyDevice2, GenericLogCaptureMBean, {C:\logs\*.log,C:\data\*.dat}>
*/
PolicyApplicationList captureList = new PolicyApplicationList();
captureList.addPolicyApplication(new DeviceCapturePolicyApplication("MyDevice1", GenericLogCaptureMBean.OBJECT_NAME_ID, new String[]{"C:\\logs\\*.log",
"C:\\data\\*.dat"}));
captureList.addPolicyApplication(new DeviceCapturePolicyApplication("MyDevice2", GenericLogCaptureMBean.OBJECT_NAME_ID, new String[]{"C:\\logs\\*.log",
"C:\\data\\*.dat"}));
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
// Query for ObjectName of the policy manager MBean
ObjectName captureMgrName = MgmtUtils.getObjectName(agentConnection, DataCaptureManagerMBean.OBJECT_NAME_ID);
if(captureMgrName == null) {
// Error
} else {
// MBean found, activate the policy
try {
agentConnection.invoke(captureMgrName, "activatePolicy", new Object[]{policy.getPolicyId()}, new String[]{String.class.getName()});
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
return policy;
}
}
The capture list has two individual device policy applications. Each applies to the
GenericLogCaptureMBean on devices MyDevice1 or MyDevice2. Each also supplies
capture arguments to be supplied to the GenericLogCaptureMBean when a capture is
invoked. Loosely worded, this application list translates to: "When a capture
notification is received that applies to the trigger list, invoke solicited captures onto
the GenericLogCapture MBeans on the devices MyDevice1 and MyDevice2.
CapturePolicyInvocationRecords
A CaptureHistory object contains a CapturePolicyInvocationRecord for each time
the policy is invoked on an agent by a DataCaptureNotification or a manual
trigger. The key for an invocation record is its start date, which takes the form of the
Master Agent system timestamp when the invocation was manually triggered or
when an unsolicited capture notification was received. It also has a state that
represents an aggregation of all nested CaptureAgentRecords.
CaptureAgentRecords
A CapturePolicyInvocationRecord contains a CaptureAgentRecord for each agent
involved in each policy invocation. CaptureAgentRecord objects represent policy
activations on an agent, and are used to track the progress and status of a set of
MBean captures on an agent.
CaptureInstanceRecords
A CaptureAgentRecord object contains a CaptureInstanceRecord for each
DataCaptureMBean instance a capture is performed on. One CaptureInstanceRecord
instance contains a set of CaptureFile instances and CaptureLogMsg instances. The
package com.ibm.retail;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import com.ibm.retail.si.mgmt.capture.DataCaptureManagerMBean;
import com.ibm.retail.si.mgmt.capture.DataCapturePolicy;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
if(captureMgrName == null) {
// Error
} else {
// MBean found, terminate and delete the policy
try {
agentConnection.invoke(captureMgrName, "terminatePolicy", new Object[]{policy.getPolicyId()}, new String[]{String.class.getName()});
agentConnection.invoke(captureMgrName, "removePolicy", new Object[]{policy.getPolicyId()}, new String[]{String.class.getName()});
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
}
Note: Some lines of code are split over two lines to fit on the page.
import java.io.IOException;
import java.net.InetAddress;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import com.ibm.retail.si.mgmt.policies.PolicyApplication;
import com.ibm.retail.si.mgmt.swdist.FTPAccessInfo;
import com.ibm.retail.si.mgmt.swdist.SWDConst;
import com.ibm.retail.si.mgmt.swdist.SWDistPolicyRegistryMBean;
import com.ibm.retail.si.mgmt.swdist.SWPolicy;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
import com.ibm.retail.si.mgmt.xfer.stream.RMAFileTransferConnection;
import com.ibm.retail.si.mgmt.xfer.stream.RMAFileTransferConstants;
// Scheduled date and time for the policy. Any time in the past will invoke immediately
long invokeNow = System.currentTimeMillis();
/*
* Create policy object as an install policy to be invoked immediately.
*/
SWPolicy policy = new SWPolicy("MySWPolicy", invokeNow, xferInfo, "policy.xml", SWDConst.INSTALL,
PolicyApplication.APP_TYPE_DEV_LIST);
if(swPolicyRegName == null) {
// Error
} else {
// MBean found, add the policy
try {
Boolean rc = (Boolean) agentConnection.invoke(swPolicyRegName, "addSWPolicy",
new Object[]{policy}, new String[]{SWPolicy.class.getName()});
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
return policy;
}
package com.ibm.retail;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import com.ibm.retail.si.mgmt.swdist.MgmtSWPolicyMasterMBean;
import com.ibm.retail.si.mgmt.swdist.SWPolicy;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
if(swPolicyMasterName == null) {
// Error
} else {
// MBean found, activate the policy
try {
agentConnection.invoke(swPolicyMasterName, "activateSWPolicy", new Object[]{new Integer(policy.getPolicyID())},
new String[]{Integer.TYPE.getName()});
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
}
}
Note: Some lines of code are split over two lines to fit on the page.
package com.ibm.retail;
import java.io.IOException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import javax.management.ReflectionException;
import com.ibm.retail.si.mgmt.swdist.MgmtSWPolicyMasterMBean;
import com.ibm.retail.si.mgmt.swdist.SWDistPolicyRegistryMBean;
import com.ibm.retail.si.mgmt.swdist.SWPolicy;
import com.ibm.retail.si.mgmt.util.MgmtUtils;
if(swPolicyMasterName == null) {
// Error
} else {
// MBean found, terminate the policy
try {
agentConnection.invoke(swPolicyMasterName, "terminateSWPolicy", new Object[]{new Integer(policy.getPolicyID())},
new String[]{Integer.TYPE.getName()});
} catch (InstanceNotFoundException e) {
// ..
} catch (MBeanException e) {
// ..
} catch (ReflectionException e) {
// ..
} catch (IOException e) {
// ..
}
}
if(swPolicyRegName == null) {
// Error
} else {
// MBean found, remove the policy
try {
Boolean rc = (Boolean) agentConnection.invoke(swPolicyRegName, "removeSWPolicy", new Object[]{policy},
new String[]{SWPolicy.class.getName()});
SystemStateManager
The SystemStateManager and SystemStateManagerMBean are singleton components
that manage system state transitions during the invocation of a software distribution
policy. The software distribution client uses this functionality in order to change the
system into a certain state before executing a policy and back into the previous
state after executing a policy. The state that it will change to is defined in the
SWPolicy object on the Master Agent.
There are a set of predefined states. The NOOP state does nothing and cannot be
overridden. The following summarizes the predefined system states:
v NOOP (Always does nothing)
v NORMAL
v SW_MAINT
v DIAGS
v DATA_MAINT
v OS_UPDATE
v DRIVER_UPDATE
This functionality provides a hook for providing custom state transition actions. For
example, it might be desirable for the SW_MAINT state to stop the running POS
Application before actually doing the update to follow. Registration of an instance of
SystemStateHandler to handle the SW_MAINT state is how this task is accomplished.
By default all system state transitions do nothing, so nothing will happen without
any registered SystemStateHandlers.
SystemStateHandler
The details of transferring into/out of states is handled by an instance of
SystemStateHandler. The method defined in this interface, requestStateChange(),
determines if the state change can be performed, and if so, performs the state
There is only one SystemStateHandler per agent, with the ability to override the
agent's instance provided by the setSystemStateHandler() method in the singleton
SystemStateManager. Thus, all that needs to be done in order provide a custom set
of system state changes is to implement and register a SystemStateHandler.
Logging levels
Because of the negative impact of logging too much information on the system, it is
important to use logging levels consistently. This enables you to know what kind of
information is logged at each level. Using this knowledge, you can set the logging
level for your system to give you just the information that you need.
Logging APIs
Table 38 shows the list of APIs and their effect after factoring and including
differences for both Jakarta Commons Logging and Sun's JDK 1.4. These are the
APIs that Store Integrator uses. The idea behind the Jakarta Commons Logging API
is to be logging implementation independent. So you should treat log.fatal() and
log.error() differently even though they look the same in the error logs. That way
if your logging implementation changes to one that distinguishes between error and
fatal levels, your software takes advantage of that.
Table 38. Log levels with sample log entries
API JDK Log Level Sample Log Entry
Log.fatal() SEVERE Apr 21, 2006 8:10:48 AM Test main SEVERE: error
text
Log.error() SEVERE Apr 21, 2006 8:10:48 AM Test main SEVERE: error
text
Log.warn() WARNING Apr 21, 2006 8:10:48 AM Test main WARNING:
error text
Log.info() INFO Apr 21, 2006 8:10:48 AM Test main INFO: error
text
Log.debug() FINE Apr 21, 2006 8:10:48 AM Test main FINE: error
text
Log.trace() FINEST Apr 21, 2006 8:10:48 AM Test main FINEST: error
text
Note: The UPOS Specification column above indicates which specification the
attribute information is defined.
The creation of JMX monitors has been replaced with integration into IBM Director
monitoring. Configuration of the RMASWPackageDistributorMBean is only required for
distributing software to agents prior to V2R2.
Figure 119. Create Monitor menu option from the Instance panel
This will start the Monitor Policy Wizard, a dialog to assist with creating monitor
policies.
The first page of the wizard contains all the main settings for the policy.
Description
Specifies the name of the policy.
Mbean Class
Specifies the name of the class of MBean that the policy is to be geared
towards. When selecting the MBean Class, there is a class of MBean called
CIMProxyMBean. This kind of bean has a special field that is displayed when
selected. This field is CIM Class, where you will specify the type of CIM
Class to be monitored. After selecting the CIM Class or after selecting a
non-CIMProxyMBean bean, the MBean field is ready.
Mbean
Specifies a specific MBean or you can select the '*' to mean any MBean.
Following the selection of the MBean, select the attribute.
Attribute
Monitors a specific attribute of an MBean. By selecting an attribute, you can
narrow down the type of monitor policy to create, which will be visible in the
next drop-down field, which is the monitor type field.
Initial Threshold Number
Indicates the specific fields needed by the selected monitor type.
After you complete the fields in Figure 120, click Finish to save the policy. To select
advanced options, click Next to continue to the next page.
If you check Apply policy when finished, the Apply Monitor Policy dialog is
displayed.
After you select the target type and chose the target identifier, click Apply to
complete the application of the monitor policy to the chosen system or systems.
These tasks are performed using the supplied buttons in the plug-in. In the Monitor
Manager plug-in, there are two tabs. The first tab, Policies, displays all the policies
on the Managed Objects. The Applied Policies tab shows all the policies that have
been applied.
Policies tab
The Policies tab provides a table that is used to display all policies. The table
displays the name of the policy and the ID of the monitor bean that it is
representing (as shown in Figure 126 on page 256).
The Apply and the Delete buttons are the only two buttons that are enabled when
multiple policies are selected.
IBM might have patents or pending patent applications covering the subject matter
in this document. The furnishing of this document does not give you any license to
these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
The following paragraph does not apply to the United Kingdom or any other country
where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS
MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. Some states
do not allow disclaimer of express or implied warranties in certain transactions,
therefore, this statement might not apply to you.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those
Web sites. The materials at those Web sites are not of the materials for this IBM
product and use of those Web sites is at your own risk.
Information concerning non-IBM products was obtained from the suppliers of those
products, their published announcements or other publicly available sources. IBM
has not tested those products and cannot confirm the accuracy of performance,
compatibility or any other claims related to non-IBM products. Questions on the
capabilities of non-IBM products should be addressed to the suppliers of those
products.
Trademarks
IBM, ThinkVantage, Tivoli, Wake on LAN, and WebSphere are trademarks of
International Business Machines in the United States or other countries, or both.
Microsoft, Windows and the Windows logo are trademarks of Microsoft Corporation
in the United States or other countries, or both.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Index 261
O Remote Management Agent, installing 13
Remote Management Agent, introducing 1
object naming, MBean 200
Remote Management Agent, using 13
objectives 147
Remote Management General Agent 21
operating system settings 81
Rename Package 93
Outer tags and attributes 181
resource monitors 103
overview 149
threshold monitor 104, 108
overview, deployment scenarios 9
retail devices 63
overview, diagnostic data capture 6
Retail Extensions for IBM Director uninstallation
overview, events 5
notes 39
overview, file transfer 6
Retail Extensions silent installation 35
overview, infrastructure 7
retail peripheral management 113
overview, inventory 6
console 114
overview, monitoring 6
retail peripheral management overview 6
overview, power management 5
Retail Peripheral Management task 66
overview, retail peripheral management 6
retries 193
overview, RMA 5
RMA data capture
overview, software distribution 5
policy invocation
invoking 137
RMA events 160
P RMA overview 5
package creation 85 RMA package distributor MBean 174
package creation for update 31 RMA Software Distribution 172
package editor, software 79 RMA Software Distribution task 66
package general information 80 RMADataCaptureMBean 189
package JAR file format 175 RMAfile class 199
package staging 176 RMI Properties 42
Package Wizard 80 roles, agent 52
Peripheral Type, description 115 RSS_SpNumericSensorAlert indications 166
plug-ins RtlNotifications 160
monitor manager 255
Policy invocation 192
policy invocation history 225
policy invocation status 225
S
Security configuration 43
policy XML variables 184
security groups 19
post capture file processing 192
security modes 19
post capture file transfer 192
setting up development environment 197
post installation
severity mapping 78
Linux 29
SFCB installation 27, 28
Windows 26
silent installation 30
post-distribution action, OS settings 85
silent uninstallation
power management 138
procedure 38
power management overview 5
software distribution 78
problem determination
Software Distribution 4690 Command Wizard 87
solutions 146
software distribution overview 5
symptoms 146
software distribution policies 222
problem symptoms 146
Software Distribution Policy 178
product
software distribution, RMA 172
overview 149
software package creation 85
programming 195
software package editor 79
programming examples 199
software package, editing 80
programming IBM Remote Management Agent 199
software policy
progress notifications 224
deleting 226
publications, related xvi
terminating 226
software policy content 181
software policy target device content 182
R Software Policy XML file structure 180
RAS log collection 144 software requirements 17
registration, MBean 202 SSL configuration 44
related xvi starting Discovery 71
related publications and diskettes xvi state notifications 224
T
tasks 65
threshold plans, importing 113
trademarks 257
Transfer progress 217
Transfer types 216
troubleshooting 143
logs 143
problem 143
solution 143
U
uninstallation 37
uninstallation notes, Retail Extensions for IBM
Director 39
uninstallation result 39
uninstallation, Linux 39
uninstallation, silent 38
updating RMA 30
UPOS 113
UPOS indications 166
UPOS inventory tables
inventory tables, UPOS 235
user-defined monitors 110
using JMX Browser 102
using Remote Management Agent 13
V
viewing inventory 74
W
Web site xvi
Windows event log integration, agent 52
Index 263
264 RMA V2R6 User's Guide
Readers’ Comments — We'd Like to Hear from You
Remote Management Agent
User's Guide
Version 2 Release 6
We appreciate your comments about this publication. Please comment on specific errors or omissions, accuracy,
organization, subject matter, or completeness of this book. The comments you send should pertain to only the
information in this manual or product and the way in which the information is presented.
For technical questions and information about products and prices, please contact your IBM branch office, your IBM
business partner, or your authorized remarketer.
When you send comments to IBM, you grant IBM a nonexclusive right to use or distribute your comments in any
way it believes appropriate without incurring any obligation to you. IBM or any other organizations will only use the
personal information that you supply to contact you about the issues that you state on this form.
Comments:
Name Address
Company or Organization
_ _ _ _ _ _ _Fold
_ _ _and
_ _ _Tape
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Please
_ _ _ _ _do
_ _not
_ _ staple
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _Fold
_ _ _and
_ _ Tape
______
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
IBM Corporation
Retail Store Solutions Information Development, Dept ZBDA
P. O. Box 12195
RESEARCH TRIANGLE PARK NC 27709-9990
_________________________________________________________________________________________
Fold and Tape Please do not staple Fold and Tape
Cut or Fold
GC30-4106-10 Along Line
GC30-4106-10