I am in the middle of working on changes for V4 to the SDK and am looking for feedback on the current iteration, and what things you would like me to add/change. Please comment on what things you like, don't like, what things are difficult or easy to use and what functionality you feel is missing. Your feedback is much appreciated and considered for the next release.
I think the connector framework could use some context for alerts. If you wanted to have a connector that is serviced by multiple subscriptions, you can identify them clearly in SCOM with a name and description; however, you do not receive any of that information with the alert, as far as I can tell (I could be missing part of the object model, though...) I would see where there could be overlap, where an alert was delivered through the connector because it matched one <i>or more</i> subscriptions, but that would suggest a collection that is passed with the alert. The specific application would be a connector that delivers alerts to an event management system. Multiple subscriptions are created for each responsible group in the event management system. If the collection of subscriptions that matched the alert were available to the connector, it could create the alert in the target system and assign it to the appropriate group. I'm sure there are other applications, but this is one I've already encountered.
Another interesting thought would be some local state storage mechanisms that could be exposed through the scripting interface. This would essentially allow a script to persist a property bag in the local ESE store. That would eliminate a number of other methods that are not tied to the SCOM infrastructure. You'd probably want the ability to specify a namespace, name, and property bag. The namespace would enable the property bag to be scoped to the instance, agent, MG, etc. That last part (MG) would require that the local storage be synchronized somehow, but I can see some neat applications. The local storage idea in a simpler form (i.e. just a place to persist something other than the registry, etc.) can be independent of a namespace.
Will there ever be overrides for Views? In the Windows Server Library MP, there are several views that were created but no added to any folders. I've only been able to use the views that Visible=True. It would be nice to override views that have Visible=False.
Unlikely, I think the recommended approach would be to copy the view.
Just a general request...is it possible to provide more script examples, particularly Powershell scripts
What sort of powershell scripts?
I think an 'include' concept is sorely lacking. Copying and pasting the same event or performance data function into each script I write makes me feel silly and inefficient.
This may already be possible im not sure but some kind of synchronicity would be great for event and alert processing. For example if you want to send to a connector you may want to set various fields in order with field population depending on various conditions in order, with criteria for rules depending on the state of the populated fields from previous rules. You may then wish to run another response on this alert once these fields are populated.
Jakub, how do you copy views from sealed MPs?
Also, we would like to see the notification logic extended a bit. When using AlertNotChangedSubscriptionConfiguration Class, we would like to be able to create criteria based on the history of the alert, specifically state changes.
For our purposes, we want to be notified of alerts that have NOT changed their state from open to closed during the IdleMinutes time period.
For copying views, you can either copy the xml into your xml or use the SDK to read one into the other. This is not really a supported scenario.
For the alert question, this is something we are working in for Service Manager.
We have a connector based on SCOM 2007 SDK. We recently found an issue of missing alerts. I wonder if you have any suggestions.
1. Connector polls SDK service every a minute.
2. Connector subscribes all alerts.
3. Connector's log did not report any errors (debug is on, and I catch exceptions).
4. On every polling cycle, connector print out its bookmark.
5. As an example, connector's log shows between 3:32 AM - 8:29 AM there is no alert at all. During that time period, the log always shows the same bookmark.
(13188) 20080513 063504.915000 VERBOSE: IIMOM: Connector bookmark: 5/13/2008 3:32:40 AM
(13188) 20080513 063504.931000 INFO: IIMOM: Number of alerts received: 0
6. But in OpsMgr console, there are several alerts generated in that time period. Alert history shows,
5/13/2008 6:34 AM – Modified by System
Alert Resolved by the System
5/13/2008 6:23 AM – Modified by Connector Framework Alert Write Action
5/13/2008 6:22 AM – Modified by System
Alert Activated by the System
Any thoughts would be appreciated. Thanks.
Can you elaborate what you mean by #1? Do you mean your connector calls GetAlerts every minute?
For #2, how did you setup your subscription? What does it look like?
This comment “Modified by Connector Framework Alert Write Action” means that the write action that is marking alerts for forwarding assigned the alert to a connector id of some kind.
Maybe you have conflicting subscriptions?
Please bring back the SDK SQL views!!!!
Have you looked at the db lately? =) It's becoming more and more data driven, which makes SQL views largely a non-starter. You're free to go against the db if you like, it's just not supported. What kinds of scenarios can you not accomplish with the current state of things?