OpenJDK 8 - ActivationGroup

वर्ग सक्रियणसमूह




openjdk

वर्ग सक्रियणसमूह

सभी लागू इंटरफेस:
Serializable , ActivationInstantiator , Remote
public abstract class ActivationGroup
extends UnicastRemoteObject
implements ActivationInstantiator

एक ActivationGroup समूह अपने समूह में "सक्रिय" वस्तुओं के नए उदाहरण बनाने के लिए ज़िम्मेदार है, अपने ActivationMonitor को सूचित करते समय या तो: इसकी वस्तु सक्रिय या निष्क्रिय हो जाती है, या समूह एक पूरे निष्क्रिय हो जाता है।

एक ActivationGroup को शुरू में कई तरीकों में से एक बनाया जाता है:

  • समूह में पहली सक्रिय वस्तु के लिए एक स्पष्ट ActivationGroupID बिना एक ActivationDesc -समूह बनाने के साइड-इफेक्ट के रूप में, या
  • ActivationGroup.createGroup विधि के माध्यम से
  • एक ऐसे समूह में पहली वस्तु को सक्रिय करने के दुष्परिणाम के रूप में जिसका ActivationGroupDesc केवल पंजीकृत था।

केवल एक्टिवेटर एक ActivationGroup को फिर से बना सकता है। सक्रियकर्ता प्रत्येक पंजीकृत सक्रियण समूह के लिए आवश्यक वीएम, एक अलग वीएम (एक बच्चे की प्रक्रिया, उदाहरण के लिए) के रूप में घूमता है और सक्रियण अनुरोधों को उपयुक्त समूह को निर्देशित करता है। यह विशिष्ट है कि वीएम को कैसे प्रायोजित किया जाता है। एक सक्रियण समूह सक्रियकरण समूह के माध्यम से बनाया गया है। ActivationGroup.createGroup स्थिर विधि। समूह बनाने के लिए समूह पर createGroup विधि की दो आवश्यकताएँ हैं: 1) समूह को ActivationGroup समूह का एक ठोस उपवर्ग होना चाहिए, और 2) समूह के पास एक निर्माता होना चाहिए जो दो तर्क लेता है:

  • समूह का ActivationGroupID समूह, और
  • समूह का आरंभिक डेटा ( java.rmi.MarshalledObject )

जब बनाया गया, तो ActivationGroup का डिफ़ॉल्ट कार्यान्वयन सिस्टम गुणों को उन संपत्तियों के साथ ओवरराइड करेगा जब अनुरोध किया गया था कि इसका ActivationGroupDesc बनाया गया है, और डिफ़ॉल्ट सिस्टम सुरक्षा प्रबंधक के रूप में एक सुरक्षा प्रबंधक स्थापित करेगा। यदि आपके एप्लिकेशन को समूह में ऑब्जेक्ट सक्रिय होने पर विशिष्ट गुणों को सेट करने की आवश्यकता होती है, तो अनुप्रयोग को इन गुणों से युक्त एक विशेष Properties ऑब्जेक्ट बनाना चाहिए, फिर Properties ऑब्जेक्ट के साथ एक ActivationGroupDesc समूह बनाएँ, और ActivationDesc s बनाने से पहले ActivationGroup.createGroup उपयोग करें डिफ़ॉल्ट ActivationGroupDesc बनाया जाता है)। यदि आपके एप्लिकेशन को SecurityManager अलावा किसी अन्य सुरक्षा प्रबंधक के उपयोग की आवश्यकता है, तो ActivativationGroupDescriptor प्रॉपर्टी सूची में आप java.security.manager संपत्ति को उस सुरक्षा प्रबंधक के नाम पर सेट कर सकते हैं जिसे आप इंस्टॉल करना चाहते हैं।

जबसे:
1.2
यह भी देखें:
ActivationInstantiator , ActivationGroupDesc , ActivationGroupID , सीरियल फॉर्म

खेत

कक्षा java.rmi.server से विरासत में मिली फ़ील्ड। java.rmi.server.RemoteObject

ref

कंस्ट्रक्टर्स

ActivationGroup

protected ActivationGroup(ActivationGroupID groupID)
                   throws RemoteException

दिए गए सक्रियण समूह पहचानकर्ता के साथ एक सक्रियण समूह का निर्माण करता है। समूह को java.rmi.server.UnicastRemoteObject रूप में निर्यात किया जाता है।

पैरामीटर:
groupID - समूह का पहचानकर्ता
फेंकता:
RemoteException - यदि यह समूह निर्यात नहीं किया जा सकता है
UnsupportedOperationException - यदि और केवल यदि सक्रियण इस कार्यान्वयन द्वारा समर्थित नहीं है
जबसे:
1.2

तरीके

inactiveObject

public boolean inactiveObject(ActivationID id)
                       throws ActivationException,
                              UnknownObjectException,
                              RemoteException

समूह को inactiveObject पद्धति को अप्रत्यक्ष रूप से Activatable.inactive विधि के लिए कॉल के माध्यम से कहा जाता है। एक दूरस्थ ऑब्जेक्ट कार्यान्वयन को Activatable inactive विधि को कॉल करना चाहिए जब वह ऑब्जेक्ट निष्क्रिय हो जाता है (ऑब्जेक्ट को लगता है कि यह अब सक्रिय नहीं है)। यदि ऑब्जेक्ट निष्क्रिय होने पर Activatable.inactive कॉल नहीं करता है, तो ऑब्जेक्ट कभी भी कचरा एकत्र नहीं करेगा क्योंकि समूह उस ऑब्जेक्ट के लिए मजबूत संदर्भ रखता है जो इसे बनाता है।

समूह की inactiveObject विधि RMI रनटाइम से दूरस्थ ऑब्जेक्ट को अनएक्सपोर्ट करती है ताकि ऑब्जेक्ट अब आने वाली आरएमआई कॉल प्राप्त न कर सके। यदि ऑब्जेक्ट में कोई लंबित या निष्पादित कॉल नहीं है, तो कोई ऑब्जेक्ट केवल unexported होगा। ActivationGroup का उपवर्ग इस पद्धति को ओवरराइड करना चाहिए और ऑब्जेक्ट को अनएक्सपोर्ट करना चाहिए।

RMI रनटाइम से ऑब्जेक्ट को हटाने के बाद, समूह को अपने ActivationMonitor मॉनीटर (मॉनीटर के inactiveObject विधि के माध्यम से) को सूचित करना होगा कि दूरस्थ ऑब्जेक्ट वर्तमान में सक्रिय नहीं है ताकि बाद में सक्रियण अनुरोध पर सक्रिय ऑब्जेक्ट द्वारा दूरस्थ ऑब्जेक्ट फिर से सक्रिय हो जाएगा।

यह विधि बस समूह के मॉनिटर को सूचित करती है कि ऑब्जेक्ट निष्क्रिय है। यह ऑब्जेक्ट को unexporting की अतिरिक्त आवश्यकता को पूरा करने के लिए एक्टिवेशनग्रुप के कंक्रीट उपवर्ग पर निर्भर है।

पैरामीटर:
id - ऑब्जेक्ट का सक्रियण पहचानकर्ता
यह दिखाता है:
यह सच है कि यदि वस्तु को सफलतापूर्वक निष्क्रिय कर दिया गया हो; अन्यथा झूठा लौट आता है।
फेंकता:
UnknownObjectException - यदि ऑब्जेक्ट अज्ञात है (पहले से ही निष्क्रिय हो सकता है)
RemoteException - अगर कॉल सूचित मॉनिटर मॉनिटर विफल रहता है
ActivationException - यदि समूह निष्क्रिय है
जबसे:
1.2

activeObject

public abstract void activeObject(ActivationID id,
                                  Remote obj)
                           throws ActivationException,
                                  UnknownObjectException,
                                  RemoteException

समूह की activeObject पद्धति को तब कहा जाता है जब कोई वस्तु निर्यात की जाती है (या तो Activatable ऑब्जेक्ट निर्माण द्वारा या फिर एक स्पष्ट कॉल करने के लिए Activatable.exportObject । समूह को अपने ActivationMonitor को सूचित करना चाहिए कि समूह सक्रिय नहीं है) पहले से ही ऐसा किया है।

पैरामीटर:
id - ऑब्जेक्ट का पहचानकर्ता
obj - दूरस्थ वस्तु कार्यान्वयन
फेंकता:
UnknownObjectException - यदि ऑब्जेक्ट पंजीकृत नहीं है
RemoteException - अगर कॉल सूचित मॉनिटर मॉनिटर विफल रहता है
ActivationException - यदि समूह निष्क्रिय है
जबसे:
1.2

समूह बनाएँ

public static ActivationGroup createGroup(ActivationGroupID id,
                                          ActivationGroupDesc desc,
                                          long incarnation)
                                   throws ActivationException

वर्तमान VM के लिए सक्रियण समूह बनाएं और सेट करें। सक्रियण समूह केवल तभी सेट किया जा सकता है जब वह वर्तमान में सेट नहीं है। जब सक्रियण activate अनुरोधों को पूरा करने के लिए एक्टिवेटर सक्रियकरण समूह के पुनः निर्माण की पहल करता है, तो एक सक्रियण समूह createGroup विधि का उपयोग करके सेट किया जाता है। इस विधि के माध्यम से बनाए जाने से पहले एक समूह को पहले ActivationSystem साथ पंजीकृत होना चाहिए।

ActivationGroupDesc समूह समूह द्वारा निर्दिष्ट समूह वर्ग को ActivationGroupDesc समूह का एक ठोस उपवर्ग होना चाहिए और एक सार्वजनिक निर्माणकर्ता होना चाहिए जो दो तर्क लेता है: समूह के लिए ActivationGroupID और समूह के आरंभिक डेटा (मार्कशीटग्रुप) से युक्त ActivationGroupDesc

यदि ActivationGroupDesc समूह समूह में निर्दिष्ट समूह वर्ग का नाम null , तो यह विधि ऐसा व्यवहार करेगी जैसे कि समूह विवरणक में डिफ़ॉल्ट सक्रियण समूह क्रियान्वयन वर्ग का नाम होता है।

ध्यान दें कि यदि आपका एप्लिकेशन अपना स्वयं का सक्रिय सक्रियण समूह बनाता है, तो उस समूह के लिए एक सुरक्षा प्रबंधक निर्धारित किया जाना चाहिए। अन्यथा समूह में वस्तुओं को सक्रिय नहीं किया जा सकता है। SecurityManager डिफ़ॉल्ट रूप से सेट किया गया है।

यदि कोई सुरक्षा प्रबंधक पहले से ही समूह VM में सेट है, तो यह विधि सबसे पहले सुरक्षा प्रबंधक के checkSetFactory विधि को कॉल करती है। इसके परिणामस्वरूप एक SecurityException हो सकती है। यदि आपके एप्लिकेशन को एक अलग सुरक्षा प्रबंधक सेट करने की आवश्यकता है, तो आपको यह सुनिश्चित करना होगा कि समूह के ActivationGroupDesc समूह समूह द्वारा निर्दिष्ट नीति फ़ाइल समूह को एक नया सुरक्षा प्रबंधक सेट करने के लिए आवश्यक अनुमतियाँ प्रदान करती है। (नोट: यदि आपका समूह सुरक्षा प्रबंधक को डाउनलोड और सेट करता है तो यह आवश्यक होगा)।

समूह बनाए जाने के बाद, ActivationSystem को सूचित किया जाता है कि समूह सक्रिय समूह विधि को कॉल करके सक्रिय है जो समूह के लिए activeGroup लौटाता है। एप्लिकेशन को स्वतंत्र रूप से कॉल करने की आवश्यकता नहीं है क्योंकि यह इस पद्धति द्वारा ध्यान रखा जाता है।

एक बार एक समूह बनाने के बाद, currentGroupID विधि के लिए बाद में कॉल इस समूह के लिए पहचानकर्ता को तब तक वापस कर देगी जब तक कि समूह निष्क्रिय नहीं हो जाता।

पैरामीटर:
id - सक्रियण समूह की पहचानकर्ता
desc - सक्रियण समूह का विवरणक
incarnation - समूह का अवतार संख्या (समूह की प्रारंभिक रचना पर शून्य)
यह दिखाता है:
VM के लिए सक्रियण समूह
फेंकता:
ActivationException - यदि समूह पहले से मौजूद है या समूह निर्माण के दौरान त्रुटि होती है
SecurityException - यदि समूह बनाने की अनुमति से इनकार किया जाता है। (नोट: सुरक्षा प्रबंधक checkSetFactory विधि के डिफ़ॉल्ट कार्यान्वयन के लिए RuntimePermission "setFactory" की आवश्यकता है)
UnsupportedOperationException - यदि और केवल यदि सक्रियण इस कार्यान्वयन द्वारा समर्थित नहीं है
जबसे:
1.2
यह भी देखें:
SecurityManager

currentGroupID

public static ActivationGroupID currentGroupID()

वर्तमान सक्रियण समूह के पहचानकर्ता को लौटाता है। यदि कोई समूह वर्तमान में इस वीएम के लिए सक्रिय नहीं है, तो वह अशक्त हो जाता है।

यह दिखाता है:
सक्रियण समूह का पहचानकर्ता
फेंकता:
UnsupportedOperationException - यदि और केवल यदि सक्रियण इस कार्यान्वयन द्वारा समर्थित नहीं है
जबसे:
1.2

setSystem

public static void setSystem(ActivationSystem system)
                      throws ActivationException

VM के लिए सक्रियण प्रणाली सेट करें। सक्रियण प्रणाली केवल इसे सेट कर सकती है यदि कोई समूह वर्तमान में सक्रिय नहीं है। यदि इस कॉल के माध्यम से सक्रियण प्रणाली सेट नहीं की जाती है, तो getSystem विधि ActivationSystem रजिस्ट्री में "java.rmi.activation.ActivationSystem" नाम को getSystem सक्रियण प्रणाली का संदर्भ प्राप्त करने का प्रयास करती है। डिफ़ॉल्ट रूप से, सक्रियण प्रणाली को देखने के लिए उपयोग किए जाने वाले पोर्ट नंबर को एक्टिवेशन सिस्टम द्वारा परिभाषित किया गया है। संपत्ति java.rmi.activation.port को सेट करके इस पोर्ट को ओवरराइड किया जा सकता है।

यदि कोई सुरक्षा प्रबंधक है, तो यह विधि सबसे पहले सुरक्षा प्रबंधक के checkSetFactory विधि को कॉल करती है। इसके परिणामस्वरूप एक SecurityException हो सकती है।

पैरामीटर:
system - ActivationSystem system दूरस्थ संदर्भ
फेंकता:
ActivationException - यदि सक्रियण प्रणाली पहले से ही सेट है
SecurityException - यदि सक्रियण प्रणाली को सेट करने की अनुमति से इनकार किया जाता है। (नोट: सुरक्षा प्रबंधक checkSetFactory विधि के डिफ़ॉल्ट कार्यान्वयन के लिए RuntimePermission "setFactory" की आवश्यकता है)
UnsupportedOperationException - यदि और केवल यदि सक्रियण इस कार्यान्वयन द्वारा समर्थित नहीं है
जबसे:
1.2
यह भी देखें:
getSystem() , SecurityManager

getSystem

public static ActivationSystem getSystem()
                                  throws ActivationException

VM के लिए सक्रियण प्रणाली लौटाता है। सक्रियण प्रणाली सेट सिस्टम प्रणाली द्वारा निर्धारित की जा सकती है। यदि सक्रियकरण प्रणाली सेट सिस्टम प्रणाली के माध्यम से सेट नहीं की setSystem है, तो getSystem विधि ActivationSystem रजिस्ट्री में "java.rmi.activation.ActivationSystem" नाम को setSystem सक्रियण प्रणाली का संदर्भ प्राप्त करने का प्रयास करती है। डिफ़ॉल्ट रूप से, सक्रियण प्रणाली को देखने के लिए उपयोग किए जाने वाले पोर्ट नंबर को एक्टिवेशन सिस्टम द्वारा परिभाषित किया गया है। संपत्ति java.rmi.activation.port को सेट करके इस पोर्ट को ओवरराइड किया जा सकता है।

यह दिखाता है:
वीएम / समूह के लिए सक्रियण प्रणाली
फेंकता:
ActivationException - यदि सक्रियण प्रणाली प्राप्त नहीं की जा सकती है या बाध्य नहीं है (इसका मतलब है कि यह नहीं चल रहा है)
UnsupportedOperationException - यदि और केवल यदि सक्रियण इस कार्यान्वयन द्वारा समर्थित नहीं है
जबसे:
1.2
यह भी देखें:
setSystem(java.rmi.activation.ActivationSystem)

activeObject

protected void activeObject(ActivationID id,
                            MarshalledObject<? extends Remote> mobj)
                     throws ActivationException,
                            UnknownObjectException,
                            RemoteException

यह संरक्षित विधि उपवर्गों के लिए आवश्यक है कि समूह के मॉनीटर पर activeObject कॉलबैक करें। कॉल केवल समूह के ActivationMonitor प्रबंधक को अग्रेषित की जाती है।

पैरामीटर:
id - ऑब्जेक्ट का पहचानकर्ता
mobj - दूरस्थ वस्तु के ठूंठ वाली एक mobj वस्तु
फेंकता:
UnknownObjectException - यदि ऑब्जेक्ट पंजीकृत नहीं है
RemoteException - अगर कॉल सूचित मॉनिटर मॉनिटर विफल रहता है
ActivationException - यदि कोई सक्रियण त्रुटि होती है
जबसे:
1.2

inactiveGroup

protected void inactiveGroup()
                      throws UnknownGroupException,
                             RemoteException

यह संरक्षित विधि उपवर्गों के लिए आवश्यक है कि समूह के मॉनिटर को inactiveGroup समूह कॉलबैक करें। कॉल केवल समूह के ActivationMonitor प्रबंधक को अग्रेषित की जाती है। इसके अलावा, VM के लिए वर्तमान समूह शून्य पर सेट है।

फेंकता:
UnknownGroupException - यदि समूह पंजीकृत नहीं है
RemoteException - अगर कॉल सूचित मॉनिटर मॉनिटर विफल रहता है
जबसे:
1.2