Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-348

decouple TransactionStatusManager from SocketProcessId

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 4.3.0.GA
    • Fix Version/s: 4.4.CR1
    • Component/s: Recovery
    • Labels:
      None

      Description

      The TransactionStatusManager resuses the ServerSocket opened by SocketProcessId, in an effort to reduce the overall number of ports in use by the system. SocketProcessId needs the socket only to guarantee it's uniq, it does not actually move traffic over it. TransactionStatusManager uses it to handle queries regarding the status of in-flight transactions.

      The problems start when the box has multiple IP addresses. SocketProcessId must bind on a fixed IP (probably 127.0.0.1) common to all JBossTS instances on the machine, in order that the port number remains uniq across all running JVMs. The TransactionStatusManager however must bind on a user specified IP in order that multiple instances may run on the same machine without interference.

      Thus it is not appropriate for TransactionStatusManager to reuse the SocketProcessId's ServerSocket. Decouple these, such that TransactionStatusManager reads its config properties and opens a ServerSocket directly, whilst SocketProcessId reads a different config property for its port number rather than reusing the TSM's config property.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  mmusgrov Michael Musgrove
                  Reporter:
                  jhalliday Jonathan Halliday
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: