GrailsFlow

ProcessManagerService - long execution time can result into Broken pipe

Details

  • Type: Bug Bug
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.0.2
  • Fix Version/s: 1.0.12
  • Component/s: None
  • Labels:
    None
  • Request Controller:
    Czeranka, Norbert
  • External Supervisor:
    Voitovich, Mary
  • Executing Programmer:
    Please select
  • Estimated Hours:
    24
  • Current Estimated Hours:
    16
  • Ext Project Id:
    JCGFW-01

Description

When running a long lasting step, ProcessManagerService might run into an java.net.SocketException: Broken pipe - see grailsflow.log. Seems to be based on invalid connections (due to db timeout).

Node execution have to be re-implemented.
Possible approach:

  1. Get innformation information that is necessary for building ActionContext and close current session.
  2. Start node execution in separate session/transaction (see GFW-256 ).
  3. Open new session, update Process/Nodes based on the execution results.

Activity

Hide
Antonicheva, July added a comment - 22/Mar/11 2:36 PM - edited

Currently the application uses Grails 1.3.5 version. According to bug in Grails, described at http://jira.codehaus.org/browse/GRAILS-6474 , the possible approach to prevent exceptions is to define additional properties for dataSource configuration in DataSource.groovy file. The example of settings is in the demo application. The bean 'dataSource' looks like:

dataSource {
	pooled = true
	driverClassName = ...
	username = "sa"
	password = ""
         ...
        properties {
            maxActive = 50
            maxIdle = 25
            minIdle = 5
            initialSize = 5
            minEvictableIdleTimeMillis = 60000
            timeBetweenEvictionRunsMillis = 60000
            numTestsPerEvictionRun = 3
            maxWait = 10000
            testOnBorrow = true
            testWhileIdle = true
            testOnReturn = false

            validationQuery = "SELECT 1"
        }  
}
Show
Antonicheva, July added a comment - 22/Mar/11 2:36 PM - edited Currently the application uses Grails 1.3.5 version. According to bug in Grails, described at http://jira.codehaus.org/browse/GRAILS-6474 , the possible approach to prevent exceptions is to define additional properties for dataSource configuration in DataSource.groovy file. The example of settings is in the demo application. The bean 'dataSource' looks like:
dataSource {
	pooled = true
	driverClassName = ...
	username = "sa"
	password = ""
         ...
        properties {
            maxActive = 50
            maxIdle = 25
            minIdle = 5
            initialSize = 5
            minEvictableIdleTimeMillis = 60000
            timeBetweenEvictionRunsMillis = 60000
            numTestsPerEvictionRun = 3
            maxWait = 10000
            testOnBorrow = true
            testWhileIdle = true
            testOnReturn = false

            validationQuery = "SELECT 1"
        }  
}

People

Vote (0)
Watch (0)

Dates

  • Created:
    29/Nov/10 6:23 PM
    Updated:
    24/Feb/12 8:39 AM
    Resolved:
    24/Feb/12 8:39 AM