A single OpenEdge session can have any number of session procedure instances, each of which creates an underlying JMS connection. These session procedures implement internal procedures that return additional ABL objects in the form of ABL persistent procedure handles.