什么将方法定义为Weblogic中的幂等元素?

时间:2017-01-09 15:27:40

标签: java apache weblogic weblogic12c

我们使用Apache来调用weblogic服务(SOAP WebService)。我们正在使用Apache weblogic HTTP插件。如果达到最长时间,则不会重试呼叫。

  1. 使用SOAP-UI通过Apache调用服务
  2. 在我的网络服务方法中,我模拟了1300毫秒的睡眠
  3. 我的httpd.conf文件中的WLIOTimeoutSecs设置设置为10秒
  4. SOAP-UI返回以下错误

    Failure of server APACHE bridge:</H2><P><hr>No backend server available for connection: timed out after 5 seconds or idempotent set to OFF or method not idempotent.
    

    我不确定5秒是否是默认消息,因为我可以清楚地看到SOAP UI在10003ms内响应。所以它明确使用我指定的10秒超时。

    问题是如何告诉插件哪些服务方法是无效的? Indentotent设置为ON。重试次数计算为5次(ConnectTimeoutSecs / ConnectRetrySecs又称5/1 =重试5次)

    My Full Weblogic Apache插件配置:

    Listen *:7001
    NameVirtualHost *:7001
    <VirtualHost *:7001>
        KeepAlive ON
        LogLevel debug
        DocumentRoot "/var/www/html"
    
        #Enables pooling of connections - Will keep connection open between PlugIn and weblogic server for 60 seconds
        KeepAliveEnabled ON
        #Default=20
        KeepAliveSecs 60
    
        #Default=ON - When IO timeout occurs and this is set to on it will connect to another server in the dynamic list
        #Needs this setting before a failover will occur and the list to be updated.
        Idempotent ON
        #Default=10 - Will wait 5 seconds before a BAD server is retried again
        MaxSkipTime 30
    
        #Default=10 - Maximum time taken to obtain a response to a client request
        ConnectTimeoutSecs 5
        #Default=2 - Wait 1 second before attempting to connect (Sleep time)
        ConnectRetrySecs 1
        #MaxRetry-ies = Interval in seconds that the plugin should sleep between attempts to connect to the WLS
        #Based off ConnectTimeoutSecs/ConnectRetrySecs aka 5/1 = Retry 5 times
    
        #Default=2 (Must be > 0) - Timeout after 2 seconds if we cannot establish a connection
        WLSocketTimeoutSecs 2
        #Default=300 - Time is takes for the weblogic server to respond before the connection fails over to another server
        #Customize this based on logic aka will be overridden on URL level
        WLIOTimeoutSecs 300
    
        #Used to query based on the ?__WebLogicBridgeConfig  parameter
        DebugConfigInfo ON
        #Will pass the header of the request to pass through the apache server
        #Default=OFF
        WLProxyPassThrough ON
        #Tells the plugin which requests to retry should the connection be lost
        #Default=ALL
        WLRetryAfterDroppedConnection ALL
        #This controls whether a 503 error is returned or a failover initialized
        #Default=ON
        WLServerInitiatedFailover ON        
    
        <IfModule mod_weblogic.c>                
    
                <Location /mySuperDuperUrl/>
                        Idempotent ON
                        WLIOTimeoutSecs 10
                        SetHandler weblogic-handler
                        WLSRequest On                        
                        WebLogicCluster server1:123,server2:124,server3:125
                </Location>
        </IfModule>
    

0 个答案:

没有答案