[JBoss JIRA] Created: (TEIID-1058) SessionCleanupThread causes deadlocks when server is clustered
by Jerry Helbling (JIRA)
SessionCleanupThread causes deadlocks when server is clustered
--------------------------------------------------------------
Key: TEIID-1058
URL: https://jira.jboss.org/jira/browse/TEIID-1058
Project: Teiid
Issue Type: Bug
Components: Server
Reporter: Jerry Helbling
Assignee: Steven Hawkins
Priority: Minor
Fix For: 8.0
Note: The following problem exists in MetaMatrix 5.5.x. I am creating this Teiid JIRA so that a fix for it (if necessary) can be considered in that product. There are no plans to fix it in MetaMatrix 5.5.x.
When SessionID cleanup is done, either at a scheduled interval or at server shutdown, there will sometimes be deadlocks if the MetaMatrix servers are clustered and/or have multiple processes.
This is because all of the processes will do the full cleanup on whatever inactive and aged sessionids are in the database. And each of them uses a single transaction to do all of the deletes, no matter how many sessionids need to be deleted.
This is hugely redundant and subject to deadlocks. If we had a concept of a 'lead' host in a cluster, it could be assigned this task, but we don't.
Possible solutions:
1) Adding an ORDER BY to the SELECT we use to retrieve the old sessionids. This forces the processes to delete the sessionids in the same order, reducing the likelihood of true deadlocks. However, in testing it did not prevent the deadlocks.
2) Refactor the cleanup code so that it does a smaller amount of work per transaction. Currently each host will attempt to do the entire cleanup process in a single transaction. With a default TTL of 10 hours, that could be hundreds or thousands of deletable sessionids in a busy environment. The process could be rewritten to discover/delete/commit a few (say 10, or even just 1) at a time.
3) Add "FOR UPDATE NOWAIT" to the SELECT that is used to retrieve the sessionids that are ready to delete.
But this syntax is only legal for Oracle and PostgreSQL. So that may not be such good solution.
We have decided not to pursue this fix in 5.5.4. Whether the conditions will be the same in Teiid is not clear, but if they are this note is offered as a contribution toward solving it in Teiid.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 7 months
[JBoss JIRA] Created: (TEIID-429) Use DataSources in creating the ConnectorBindings instead of creating one using the Driver
by Ramesh Reddy (JIRA)
Use DataSources in creating the ConnectorBindings instead of creating one using the Driver
------------------------------------------------------------------------------------------
Key: TEIID-429
URL: https://jira.jboss.org/jira/browse/TEIID-429
Project: Teiid
Issue Type: Task
Affects Versions: 6.x
Reporter: Ramesh Reddy
Assignee: Ramesh Reddy
Fix For: 6.0.0
Currently when we have separate configurations for XA sources and Non-XA sources, these should be combined into one definition, and by default we should make attempt use the data sources instead of Drivers. This will make it easy on the user in specifying the properties rather than coming up with unique URL for the data source.
This will add
DatabaseName
ServerName
Port
properties in addition to already provided,
User
Password
URL -> expert=true
properties. The URL property will be set to "expert", so that if one needs to use the Driver, you can still use it. In addition this needs to provide support to add additional properties that may be needed by the specific data source. For this add
OptionalProperties
This should be supplied in the format [name=value;name=value] and runtime engines should support these to add these properties as DataSource bean properties.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 7 months
[JBoss JIRA] Created: (TEIID-881) SOAP Connector should expose property to control HTTP Header Transfer-Encoding: chunked
by Larry O'Leary (JIRA)
SOAP Connector should expose property to control HTTP Header Transfer-Encoding: chunked
---------------------------------------------------------------------------------------
Key: TEIID-881
URL: https://jira.jboss.org/jira/browse/TEIID-881
Project: Teiid
Issue Type: Feature Request
Components: XML Connector
Affects Versions: 6.2.0, 6.1.0, 6.0.0
Reporter: Larry O'Leary
Assignee: Steven Hawkins
A user has reported that results from a SOAP service using the SOAP-Relational connector are sometimes invalid. This is due to the results from an earlier invocation being returned. After further investigation this turned out to be a bug with the web server that was hosting the web service and its inability to properly handle chunked requests.
By default, Axis 1.3/2 (not sure what we are using lately) uses chunked Transfer-Encoding. By disabling chunked transfer encoding it allows the faulty web server to properly serve the request and return the expected results.
Ideally, chunked requests should be used as per the default Axis configuration but we should expose a means of overriding this behaviour in the event a user runs across a buggy web server.
For example, in SOAPExecutor chunked requests can be enabled/disabled via a setting in the Call properties.
Boolean isChunked = ((HTTPConnectorState) this.getState()).isHttpHeaderTransferEncodingChunked();
if (isChunked != null) {
Hashtable httpProps = (Hashtable) call.getProperty(HTTPConstants.REQUEST_HEADERS);
if (httpProps == null) {
httpProps = new Hashtable();
}
httpProps.put(HTTPConstants.HEADER_TRANSFER_ENCODING_CHUNKED, isChunked);
call.setProperty(HTTPConstants.REQUEST_HEADERS, httpProps);
}
Please note, this code was written against Axis 1.3 which is used in XML-Relational SOAP Connector for MMx 5.5.3.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 7 months