将警报作为 Oracle Service Bus 自定义文件插入

Insert an alert as an Oracle Service Bus customization file

我正在为 OSB 创建自定义文件,我需要在其中添加警报,因此无论何时加载它,都会修改受影响的资源以包含这些警报。

到目前为止,我已按照 See Example - Adding and Deleting SLA Alert Rules 中的说明进行操作。我创建了一个与示例结构相同的自定义文件(操作 - 添加 - 值),只是更改警报的值,甚至使用示例中显示的值。

无论如何,当我尝试在 OSB 上应用此自定义文件时,我总是收到错误消息:
org.apache.xmlbeans.impl.values.XmlAnyTypeImpl 无法转换为 com.oracle.xmlns.servicebus.monitoring.alert.AlertRuleDocument

我的自定义文件是:

<?xml version="1.0" encoding="UTF-8"?>
<cus:Customizations xmlns:cus="http://www.bea.com/wli/config/customizations" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="http://www.bea.com/wli/config/xmltypes" xmlns:aler="http://www.bea.com/wli/monitoring/alert">
<cus:customization xsi:type="cus:EnvValueActionsCustomizationType">
    <cus:description>Alertes Generals de ProxyService</cus:description>
    <cus:owners>
        <xt:ownerQuery>          
            <xt:resourceTypes>ProxyService</xt:resourceTypes>
            <xt:refsToSearch xsi:type="xt:LocationRefType">
                <xt:type>Folder</xt:type>
                <xt:path>bus_ver/EA</xt:path>
            </xt:refsToSearch>                                                       
        </xt:ownerQuery>
    </cus:owners>
    <cus:actions>
        <xt:add>
            <xt:envValueType>Service SLA Alert Rule</xt:envValueType>
            <xt:location>AverageResponse</xt:location>
            <xt:value>
                <aler:alertRule enabled="true" name="prova">                        <aler:description>provades</aler:description>                       <aler:expirationDate>2016-03-31+02:00</aler:expirationDate>
                    <aler:startTime>00:00:00.000+01:00</aler:startTime>
                    <aler:endTime>00:05:00.000+01:00</aler:endTime>
                    <aler:frequency>every-time</aler:frequency>
                    <aler:severity>normal</aler:severity>
                    <aler:stopProcessing>false</aler:stopProcessing>
                    <aler:condition aggregation-interval="10">
                        <con1:monCondExpr xmlns:con1="http://xmlns.oracle.com/servicebus/monitoring/alert/condition">
                            <con1:function>count</con1:function>
                            <con1:lhs>Operation.peticionSincrona.error-count</con1:lhs>
                            <con1:operator>=</con1:operator>
                            <con1:rhs>1</con1:rhs>
                        </con1:monCondExpr>
                    </aler:condition>
                    <aler:alertDestination ref="bus_ver/AlertaProva"/>
                </aler:alertRule>
            </xt:value>
        </xt:add>
    </cus:actions>
</cus:customization>
</cus:Customizations>

有谁知道如何解决这个问题,或者我做错了什么?

感谢您的帮助。

最后我制作了一个带有如下警报的自定义文件:

<?xml version="1.0" encoding="UTF-8"?>
<cus:Customizations xmlns:cus="http://www.bea.com/wli/config/customizations" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="http://www.bea.com/wli/config/xmltypes" xmlns:aler="http://xmlns.oracle.com/servicebus/monitoring/alert">
<cus:customization xsi:type="cus:EnvValueActionsCustomizationType">
    <cus:description>Alertes Generals de ProxyService</cus:description>
    <cus:owners>
        <xt:ownerQuery>          
            <xt:resourceTypes>ProxyService</xt:resourceTypes>
            <xt:refsToSearch xsi:type="xt:LocationRefType">
                <xt:type>Folder</xt:type>
                <xt:path>bus_ver/EA</xt:path>
            </xt:refsToSearch>                                                       
        </xt:ownerQuery>
    </cus:owners>
    <cus:actions>
        <xt:replace>
            <xt:envValueType>Service SLA Alert Rule List</xt:envValueType>
            <xt:value>
                <aler:alertRules>
                    <aler:alertRule enabled="true" name="prova" xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:con="http://www.bea.com/wli/sb/services/security/config" xmlns:oper="http://xmlns.oracle.com/servicebus/proxy/operations" xmlns:env="http://www.bea.com/wli/config/env" xmlns:tran="http://www.bea.com/wli/sb/transports">
                        <aler:description>provades</aler:description>
                        <aler:expirationDate>2016-03-31+02:00</aler:expirationDate>
                        <aler:startTime>00:00:00.000+01:00</aler:startTime>
                        <aler:endTime>00:05:00.000+01:00</aler:endTime>
                        <aler:frequency>every-time</aler:frequency>
                        <aler:severity>normal</aler:severity>
                        <aler:stopProcessing>false</aler:stopProcessing>
                        <aler:condition aggregation-interval="10">
                            <con1:monCondExpr xmlns:con1="http://xmlns.oracle.com/servicebus/monitoring/alert/condition">
                                <con1:function>count</con1:function>
                                <con1:lhs>Operation.peticionSincrona.error-count</con1:lhs>
                                <con1:operator>=</con1:operator>
                                <con1:rhs>1</con1:rhs>
                            </con1:monCondExpr>
                        </aler:condition>
                        <aler:alertDestination ref="bus_ver/AlertaProva"/>
                    </aler:alertRule>
                </aler:alertRules>
            </xt:value>
        </xt:replace>
    </cus:actions>
</cus:customization>

导致初始错误的主要差异 XML:

  • xmlns:aler="http://xmlns.oracle.com/servicebus/monitoring/alert" -> OK vs xmlns:aler="http://www.bea.com/wli/monitoring/alert" -> KO
  • 服务 SLA 警报规则列表 -> OK 与服务 SLA 警报规则 -> KO