HP NonStop CORBA 2.6.1 Programmer's Reference HP NonStop CORBA 2.6.1 Programmer's Reference Part number: 525938005. Published May 2006. Legal Notice Abstract This manual summarizes the ways in which the HP NonStop" CORBA® 2.6.1 product differs from CORBA as described in the OMG specifications, and provides additional HP-proprietary, programming-reference material. Unless otherwise stated in this manual, the NonStop CORBA 2.6.1 product is based on the OMG specifications.
ORB Interface: The ORB Operations (4.2) ORB Interface: Thread-Related Operations: perform_work (4.2.4.2) ORB Interface: Thread-Related Operations: destroy (4.2.4.5) ORB Interface: Object Reference Operations: validate_connection (4.3.10.1) ORB Interface: Object Reference Operations: get_domain_managers (4.3.11.1) ORB Interface: ORB Initialization (4.5.1) ORB Interface: Management of Policies (4.9) ORB Interface: The TypeCode Interface (4.11.1) ORB Interface: Creating TypeCodes (4.11.
The DCE ESIOP (16) Interworking Architecture (17) Mapping: COM and CORBA (18) Mapping: Automation and CORBA (19) Interoperability with Non-CORBA Systems (20) Portable Interceptors (21) Portable Interceptors: send_poll (21.3.6.2) Minimum CORBA: Typecode (23.8.1) 3. C++ Language Mapping Mapping for Basic Data Types (1.5) Mapping for String Types (1.7) Mapping for Wide String Types (1.8) Mapping for Structured Types (1.9) Mapping for Fixed Types (1.11) Mapping for the Any Type (1.16) Mapping for Valuetypes (1.
Transaction Models (1.2.4.1) Service Architecture: Transaction Context (1.3.2) Service Architecture: Exceptions (1.3.6) Current Interface (2.2) TransactionFactory Interface (2.3) Coordinator Interface: get_transaction_name (2.6.1.5.) RecoveryCoordinator Interface: replay_completion (2.7.1) TransactionalObject Interface (2.11) The User's View: Application Programming Models (2.13.1) The User's View: Checked Transaction Behavior (2.13.3) The User's View: Resume Check (2.13.4.3) Model Interoperability (2.14.
Class Fw_Listener_EH gfsehoss.h Classes Class NSDEFw_GFS Class NSDEFw_GFS::Client Class NSDEFw_GFS::Client::Address Class NSDEFw_GFS::Client::Event Class NSDEFw_GFS::Client::Event::Key Class NSDEFw_GFS::Client::EH Class NSDEFw_GFS::Receive_EH NSDEFw_GFS::Server Class NSDEFw_GFS::Server::Address Class NSDEFw_GFS::Server::Event Class NSDEFw_GFS::Server::EH Class NSDEFw_GFS::Listener Class NSDEFw_GFS::Listener::Address Class NSDEFw_GFS::Listener::Event Class NSDEFw_GFS::Listener::EH gcfehoss.
Comm Server Minor Code Values (Numbers 1200 - 1299) Data Conversion Minor Code Values (Numbers 1500 - 1599) Context Minor Code Values (Numbers 1600 - 1699) Object Transaction Service (OTS) Minor Code Values (Numbers 1700 - 1799) Interface Repository Minor Code Values (Numbers 1800 - 1899) Dynamic Skeleton Interface Minor Code Values (Numbers 1900 - 1999) Interoperable Location Service Daemon (ILSD) Minor Code Values (Numbers 2000-2099) Interoperable Naming Service (INS) Minor Code Values (Numbers 3000 - 309
© Copyright 2006 Hewlett-Packard Development Company L.P. Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211 and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed to the U.S. Government under vendor’s standard commercial license. The information contained herein is subject to change without notice.
© 1987, 1988, 1989 Carnegie-Mellon University. © 1989, 1990, 1991 Digital Equipment Corporation. © 1985, 1988, 1989, 1990 Encore Computer Corporation. © 1988 Free Software Foundation, Inc. © 1987, 1988, 1989, 1990, 1991 Hewlett-Packard Company. © 1985, 1987, 1988, 1989, 1990, 1991, 1992 International Business Machines Corporation. © 1988, 1989 Massachusetts Institute of Technology. © 1988, 1989, 1990 Mentat Inc. © 1988 Microsoft Corporation. © 1987, 1988, 1989, 1990, 1991, 1992 SecureWare, Inc.
New and Changed Information New and Changed Information This edition of the HP NonStop CORBA 2.6.1 Programmer's Reference includes: ● Chapter 11. NonStop CORBA System Error Messages: added a new Object Transaction Service (OTS) error message, 2401, introduced in NSotsTM. August 2004 edition of the HP NonStop CORBA 2.6.1 Programmer's Reference includes: ● Chapter 3. C++ Language Mapping: included Fixed Point Types that the NonStop CORBA 2.3 does not support . ● Chapter 8.
About This Manual About This Manual Who Should Read This Manual Organization of this Manual Related Manuals Notation Conventions This manual summarizes the ways in which the NonStop CORBA 2.6.1 product differs from CORBA as described in the OMG specifications, and provides additional HP-proprietary, programming-reference material. Unless otherwise stated in this manual, the NonStop CORBA 2.6.1 product is based on the OMG specifications.
Section 1 of this manual corresponds to core CORBA (chapters 1 through 11), of The Common Object Request Broker: Architecture and Specification, Revision 2.6.1May 2002 . Section 2 corresponds to the Interoperability and Interworking (chapters 12 through 21), of The Common Object Request Broker: Architecture and Specification, Revision 2.6.1May 2002 . Section 3 corresponds to the C++ Language Mapping Specification, August 2002.
The NonStop CORBA Glossary provides definitions of CORBA terminology, with special emphasis on the NonStop CORBA implementation. In addition, Javadoc reference material for Java programmers is on the product CD, and the HP NonStop Distributed Console includes online help. Notation Conventions The following table shows the conventions used in this manual: Syntax Item UPPERCASE LETTERS italics [] {} | Description Uppercase letters indicate keywords and reserved words; enter these items exactly as shown.
... "" Other punctuation Long Commands An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times. For example: M address-1 [ , new-value ]... [ - ] {0|1|2|3|4|5|6|7|8|9}... An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times. For example: "s-char...
Chapter 1. Core CORBA Chapter 1. Core CORBA The Object Model: Types (1.2.4) OMG IDL Syntax and Semantics: Grammar (3.4) OMG IDL Syntax and Semantics: Regular Value Types (3.8.1) OMG IDL Syntax and Semantics: Value Inherited Specification (3.8.1.3) OMG IDL Syntax and Semantics: Integer Types (3.10.1.1) OMG IDL Syntax and Semantics: FloatingPoint Types (3.10.1.2) OMG IDL Syntax and Semantics: Wstrings (3.10.3.3) OMG IDL Syntax and Semantics: Fixed Type (3.10.3.4) ORB Interface: The ORB Operations (4.
Dynamic Management of Any Values: DynValueBox Interface (9.2.12) The Portable Object Adaptor: Policy Creation Operations (11.3.8.4) The Portable Object Adaptor: get_object_id (11.3.9.2) This section applies to the core CORBA (chapters 1 through 11) of The Common Object Request Broker: Architecture and Specification, Revision 2.6.1May 2002 . The Object Model: Types (1.2.4) For C++, 64-bit unsigned 2s complement integers (unsigned long long) are not supported (they are implemented for Java).
OMG IDL Syntax and Semantics: Wstrings (3.10.3.3) For C++, the iostream extraction operator for Wstring_var and Wstring_out is not supported. The iostream insertion operator is not implemented for Wstring_out. OMG IDL Syntax and Semantics: Fixed Type (3.10.3.4) NonStop CORBA does not support the fixed data type. ORB Interface: The ORB Operations (4.2) NonStop CORBA does not support the following ORB interface methods.
ORB Interface: Object Reference Operations: validate_connection (4.3.10.1) NonStop CORBA does not support the validate_connection operation. ORB Interface: Object Reference Operations: get_domain_managers (4.3.11.1) NonStop CORBA does not support the get_domain_managers operation. ORB Interface: ORB Initialization (4.5.1) The OMG specification states "Applications can be initialized in one or more ORBS." Within a NonStop CORBA environment, however, an application can have only one ORB.
ORB Interface: Creating TypeCodes (4.11.3) NonStop CORBA does not support the following Typecode creation operations: create_fixed_tc(), create_value_tc(), create_value_box_tc(), create_native_tc(), create_recursive_tc(), create_recursive_sequence_tc(), and create_abstract_interface_tc(). ORB Interface: INV_OBJREF (4.12.3.6) An ORB may choose to detect calls via nil references (but is not obliged to detect them) and throw INV_OBJREF. NonStop CORBA does not detect nil references resulting in a memory fault.
Dynamic Management of Any Values: DynAny API (9.2) For Java, NonStop CORBA does not support DynAny::insert_abstract() and DynAny::get_abstract(). Dynamic Management of Any Values: DynValueCommon Interface (9.2.10) For Java, NonStop CORBA does not support the DynValueCommon interface. Dynamic Management of Any Values: DynValue Interface (9.2.11) For Java, NonStop CORBA does not support the DynValue interface. Dynamic Management of Any Values: DynValueBox Interface (9.2.
About This Manual Chapter 2.
Chapter 2. Interoperability and Interworking Chapter 2. Interoperability and Interworking ORB-Interoperability Architecture: Other Components (13.6.6.3) ORB-Interoperability Architecture: Standard Service Context (13.6.7) ORB-Interoperability Architecture: Code Set Conversion (13.10) ORB-Interoperability Architecture: Relevant OSFM Registry Interfaces (13.10.5) General InterORB Protocol: Primitive Types (15.3.1) General InterORB Protocol: Fragmentation (15.3.4.6) General InterORB Protocol: TypeCode (15.3.
ORB-Interoperability Architecture: Other Components (13.6.6.3) NonStop CORBA does not support any of the components listed under this topic in the OMG specification. ORB-Interoperability Architecture: Standard Service Context (13.6.7) The only ServiceID supported by NonStop CORBA is: const ServiceId TransactionService = 0; ORB-Interoperability Architecture: Code Set Conversion (13.10) NonStop CORBA supports limited codeset negotiation for transmitting character data in GIOP 1.1 and GIOP 1.2 messages.
General InterORB Protocol: TypeCode (15.3.5.1) For C++, tk_ulonglong and tk_longdouble typecodes are not supported. For Java, tk_longdouble is not supported. Bi-Directional GIOP (15.8) NonStop CORBA does not support the material described under this topic in the OMG specification. Bi-Directional IIOP (15.8.1) NonStop CORBA does not support the material described under this topic in the OMG specification. Bi-Directional GIOP Policy (15.
Portable Interceptors (21) NonStop CORBA implements the optional Portable Interceptpr feature.
Chapter 3. C++ Language Mapping Chapter 3. C++ Language Mapping Fixed Point Types (1.11,1.4.2) Mapping for Basic Data Types (1.5) Mapping for String Types (1.7) Mapping for Wide String Types (1.8) Mapping for Structured Types (1.9) Mapping for Fixed Types (1.11) Mapping for the Any Type (1.16) Mapping for Valuetypes (1.17) Abstract Interface Base (1.18.1) Mapping for Exception Types (1.19) Any Insertion and Extraction for Exceptions (1.19.3) TypeCode C++ Class (1.32.2) Servant Reference Counting (1.37.
versus unsigned implementation of the C++ type char. For platform portability during development, CORBA::Char may be used to declare variables and parameters. Mapping for String Types (1.7) Strings nested inside user-defined types (structs, sequences, arrays, exceptions, and valuetypes) should be initialized to the empty string. NonStop CORBA maps nested strings to the String_var class, which initializes the string to a null pointer, not an empty string. Mapping for Wide String Types (1.
Mapping for Valuetypes (1.17) The C++ language mapping specifies that a private default assignment operator should be generated for value box types. A private assignment operator is needed to avoid the default C++ member-wise copy semantics for assignment, which are incompatible with value box reference counting. NonStop CORBA does not generate a default assignment operator, making it easy to generate value box objects with incorrect reference counts. Abstract Interface Base (1.18.
... } catch (const CORBA::Exception &exc) { cout << exc << endl; & } Any Insertion and Extraction for Exceptions (1.19.3) The Any insertion and extraction operators are not generated for value types. TypeCode C++ Class (1.32.2) NonStop CORBA does not support the TypeCode::get_compact_typecode operation which removes all type and member names from a Typecode, but preserves repository ID and alias information.
{ if (_uses_which_ref_type() == Uses_NSDOM_ref_count) { CORBA::Object::_duplicate( this->_this_reference() ); } else this->_add_ref(); } void NSDOM_ServantBase::_remove_nsd_ref() { if (_uses_which_ref_type() == Uses_NSDOM_ref_count) { CORBA::release( this->_this_reference() ); } else this->_remove_ref(); } The PortableServer::_default_POA should duplicate the _poa object reference before returning it to a caller, but this does not work in NonStop CORBA. DelegationBased Interface Implementation (1.37.
Chapter 4. Java Language Mapping Chapter 4. Java Language Mapping Fixed Point Types (1.4.8) CustomMarshal Interface (1.13.1.3) This section applies to the IDL to Java Language Mapping Specification, Version 1.2August 2002 . Fixed Point Types (1.4.8) NonStop CORBA does not support fixed point types. CustomMarshal Interface (1.13.1.3) NonStop CORBA does not support custom marshaling. Chapter 3. C++ Language Mapping Chapter 5.
Chapter 5. Naming Service Chapter 5. Naming Service This section applies to the CORBAservices: Common Object Services Specification (Naming Service Specification), Version 1.2September 2002 . NonStop CORBA supports all mandatory Naming Service interfaces and features described in the OMG specification. NonStop CORBA enhances the implementation through scalability. There are no API-level enhancements.
Chapter 6. Event Service Chapter 6. Event Service Typed Event Communication (2.4) The CosTypedEventComm Module (2.5) Typed Event Channels (2.6) The CosTypedEventChannelAdmin Module (2.7) This section applies to the CORBAservices: Common Object Services Specification (Event Service Specification), Version 1.1March 2001 . NonStop CORBA supports all mandatory generic event interfaces and features described in the OMG specification.
Chapter 7. Transaction Service Chapter 7. Transaction Service Overview Transaction Models (1.2.4.1) Service Architecture: Transaction Context (1.3.2) Service Architecture: Exceptions (1.3.6) Current Interface (2.2) TransactionFactory Interface (2.3) Coordinator Interface: get_transaction_name (2.6.1.5.) RecoveryCoordinator Interface: replay_completion (2.7.1) TransactionalObject Interface (2.11) The User's View: Application Programming Models (2.13.1) The User's View: Checked Transaction Behavior (2.13.
Transaction Models (1.2.4.1) The specification defines nested transactions. These transactions are optional and are not supported by NSOTS. Service Architecture: Transaction Context (1.3.2) NSOTS does not support the transactional Dynamic Invocation Interface. Service Architecture: Exceptions (1.3.6) In general, NSOTS does not provide exception minor codes. However, when an exception is initiated by Open TMF, NSOTS assigns the TMF error code to the CORBA exception minor code. Current Interface (2.
resource is still required to wait for Resource::commit() or Resource::rollback() to be invoked. The RecoveryCoordinator will only be used by very sophisticated server applications. TransactionalObject Interface (2.11) The specification says that an object that supports the TransactionalObject indicates that it wants the transactional context associated with the client thread to be associated with all operations on its interface.
Model Interoperability (2.14.3) The specification provides for interoperability with X/Open DTP through the TX and XA interfaces. NSOTS does not support those interfaces because the TMF subsystem is the native transaction manager for HP NonStop Kernel operating system environments (not X/Open). NSOTS extends the Current interface with the tmf_start(xid) and tmf_end() procedures (where xid is a transaction identifier obtained from tmf_get_tx_id_() ). They correspond to X/Open xa_start() and xa_end().
Chapter 8. NonStop CORBA vthread Interface Chapter 8. NonStop CORBA vthread Interface vthread.h Classes class Fw_Thread class Mutex class Preemption_Mutex class Condition_Variable timer.h Classes Global Variables class Fw_Time_Stamp class Fw_Timer Note: The material presented in this section is not intended to be tutorial in nature. Instead, it is meant to be detailed reference material that you will consult while studying Section 9, Writing Multithreaded Applications, of the NonStop CORBA 2.6.
class Fw_Thread Container for parts that generically wrap critical threading functionality provided by different platforms, such as UNIX, NonStop Kernel Open System Services (OSS), and Microsoft Windows NT. API Data static bool cv_trace_enabled Triggers tracing within Fw_Thread parts. typedef void( *Dtor_Function )( void * ) Signature of get_/set_specific destructor to be called upon thread termination. typedef void * Id_ptr Type for thread identifiers.
Disassociates the thread pp_tid from the creator thread. Returns zero if operation was successful. You use this when the creator is not interested in the termination of a thread or any associated results. static int join( Id_ptr pp_tid, void **ppp_result ) Blocks the current thread until the thread pp_tid completes. The thread result is passed back in ppp_result (pointer to a void*). Returns zero if the operation was successful. static int self_id() Returns an internal thread number.
Returns zero if successful. int unlock() Unlocks the mutex. Returns zero if successful. class Preemption_Mutex This class, which wraps FW_Thread::Mutex with preemption awareness, is a no-op on non-preemptive threading platforms such as NonStop systems. On preemptive threading platforms (such as Unix and Microsoft Windows), this class behaves identically to Fw_Thread::Mutex. API Methods Preemption_Mutex() Creates a mutex object. ~Preemption_Mutex() Destructor for the current mutex object.
~Condition_Variable() Destructor for the current condition variable object. int broadcast() Signals all threads waiting on this condition variable. Returns zero if successful. int signal() Signals the next thread waiting on this condition variable. Returns zero if successful. int wait() Blocks the current thread until the condition variable signal or broadcast functions unblock it. Returns zero if successful.
1. Creates a timer event that specifies its event-handler method and mutex instance attribute. 2. Calls wait on its mutex instance attribute. When the timer pops the event handler is called. The mutex associated with the event is signaled, unblocking the callers thread. Control returns to the event core. 3. When the callers thread runs next, NSDEFw_Timer returns control to the caller. API Methods NSDEFw_Timer() Creates a timer object.
Chapter 9. NonStop CORBA Event Framework Chapter 9. NonStop CORBA Event Framework ehbase.h Classes Class Fw_Transfer_EH_User Class Fw_Transfer_EH Class Fw_Client_EH_User Class Fw_Client_EH Class Fw_Server_EH_User Class Fw_Server_EH Class Fw_Listener_EH_User Class Fw_Listener_EH gfsehoss.
Class NSDEFwGCF::Client message.h Classes Class Fw_MD Class Fw_Message sockeh.h Classes Class Fw_Sock_Address Class Fw_Sock_Client_EH Class Fw_Sock_Server_EH Class Fw_Sock_Listener_EH Note: The material presented in this section is not intended to be tutorial in nature. Instead, it is meant to be detailed reference material that you will consult while studying Section 12, Writing Wrappers for Legacy Clients and Servers, of the NonStop CORBA 2.6.1 Programmer's Guide for C++.
class { ... class { ... class { ... class { ... class { ... class { ... class { ... Fw_Transfer_EH } Fw_Client_EH_User } Fw_Client_EH } Fw_Server_EH_User } Fw_Server_EH } Fw_Listener_EH_User } Fw_Listener_EH } Class Fw_Transfer_EH_User The base class for client and server event handler (EH) users. This method is not specific to TCP/IP (i.e.
Invoked by a transfer (client or server) event handler, this method notifies the transfer event-handler user that the connection has been terminated. unsigned long header_in( Fw_MD *pp_MD ) Delivers the first header-size bytes of a message. For TCP/IP, pv_header_size (the length of the message header) is determined by the set_header_size method of the transfer (client or server) event handler. Class Fw_Transfer_EH The base class for client and server event handlers.
event-handler user. API Methods If your application includes a client event handler user implementation, it must implement all of the following methods that it uses, except those method implementations (if any) that it inherits from the NSDEFw_GFS class. Fw_Client_EH_User() Creates an Fw_Client_EH_User object. ~Fw_Client_EH_User() Destructor for the current Fw_Client_EH_User object. void connected() Invoked by a client event handler when it has successfully established a connection with its peer.
client event handler succeeded in initiating the connect protocol. If connect returns true, the client event-handler user should expect to be called with either the connected or connect_failed method. Class Fw_Server_EH_User The base class for server event-handler users, a role played by the transfer portion of a client wrapper. This class is derived from the Fw_Transfer_EH_User class.
Creates an Fw_Server_EH object. ~Fw_Server_EH() Destructor for the current Fw_Server_EH object. bool accept( void *pp_client_address ) Directs the server event handler to accept the connection with the peer indicated by the transport-dependent pp_client_address. The result of this method indicates whether the server event handler succeeded in accepting the connection. Class Fw_Listener_EH_User The base class for listener event-handler users, a role played by the listener portion of a client wrapper.
user with the listener event handler by setting this pointer. API Methods If your application includes a listener event handler implementation, it must implement all of the following methods that it uses, except those method implementations (if any) that it inherits from the NSDEFw_GFS class or either of the classes Fw_Sock_Client_EH or Fw_Sock_Server_EH. Fw_Listener_EH() Creates an Fw_Listener_EH object. ~Fw_Listener_EH() Destructor for the current Fw_Listener_EH object.
...}} class NSDEFw_GFS::Receive_EH { ... } class NSDEFw_GFS::Server { class NSDEFw_GFS::Server::Address { ... } class NSDEFw_GFS::Server::Event { ... } class NSDEFw_GFS::Server::EH { ...}} class NSDEFw_GFS::Listener { class NSDEFw_GFS::Listener::Address { ... } class NSDEFw_GFS::Listener::Event { ... } class NSDEFw_GFS::Listener::EH { ...}}} API Methods static unsigned long make_tag() Allocation of file-system completion tags is a process-wide mechanism.
Phandle_Len Number of shorts in a process handle. IO_Type: Close_Msg, CPU_Down_Msg, Dialog_Abort_Msg, Open_Msg, Process_Deletion_Msg, Read_Msg, Write_Msg, Write_Read_Msg, Unknown_Msg Messages expected by Receive_EH. Dialog_Flags: Dialog_Abort, Dialog_Begin, Dialog_Middle, Not_Dialog For context-sensitive NonStop TS/MP (Pathsend) messages (the server end of a TS/MP dialogue is implemented with Guardian file-system components).
API Methods static Address* get_address() Factory. Use this instead of new. static put_address( Address* pp_address ) Recycler. Use this instead of delete. static unsigned hash( const Address& pr_address ) Rogue Wave tools.h dictionary-compatible hash method. bool operator==( const Address& pr_RHS ) Returns true if the instance and the right-hand side string compare on all API strings.
~Event() Destructor. API Data Fw_MD *ip_MD Pointer to a message data object. For delivering the results of READ operations to the event handler. Event *ip_next For chained events, can be used as a pointer to the next event in the chain. short iv_count Contains the completion count for the operation (as in AWAITIO). short iv_FE Contains any Guardian file-system error codes returned by the operation. Key iv_key Associates the FS Client Event object with the I/O operation it represents.
~Key() Destructor. unsigned hash( const Key &pr_key ) Static method that, given a Key, will generate a value usable by Rogue Wave dictionaries. int operator==( const Key &pr_RHS ) Compares the instance with the parameter on the right-hand side. Returns true if the two keys have identical values for iv_FN and iv_tag. API Data short iv_FN File number associated with operation. unsigned long iv_tag Nowait tag associated with operation.
thread-blocking jacket function is availablemust implement this method to do whatever is appropriate with the I/O event. static void put_EH( EH *pp_EH ) Recycler. void send_message( Fw_Message *pp_msg ) Tells the event handler to deliver a full message over the event handlers connection. API Data Address *ip_address From the open message data, uniquely identifies the connection within this process. EH *ip_next For chained events, can be used as a pointer to the next event in the chain.
registered with the corresponding connection address. void unregister_listener( Listener::Address *pp_address ) Removes the entry at pp_address from the listener dctionary. void unregister_server( Server::Address *pp_address ) Removes the entry at pp_address from the server dictionary. NSDEFw_GFS::Server Implements the Fw_Server_EH role using the other Guardian file-system server components.
API Methods Event() Constructor that creates an Event object. ~Event() Destructor. void reply( FE pv_FE ) A server event handler object calls this method when it has processed the event and associated any response message data with the event. API Data Fw_MD* ip_MD Points to any data associated with the I/O. Write data is attached by the Receive_EH. Read data is attached by an event handler for delivery to the client. Event* ip_next For chained events, can be used as a pointer to the next event in the chain.
(NSDEFw_GFS::Server_Address*)pp_client_address. void disconnect() Resets the event handler. void handle_event( Event *pp_event ) This method is invoked by a callback from the NonStop CORBA event framework when the event framework receives an I/O event of a type registered by the event handler. A legacy client wrapper must implement this method when playing the role of the server event handler. The implementation should do whatever is appropriate with the I/O event.
Class NSDEFw_GFS::Listener::Event Events are generated by the Receive_EH upon receipt of OPEN messages. API Methods Event() Constructor that creates an NSDEFw_GFS::Listener::Event object. ~Event() Destructor for NSDEFw_GFS::Listener::Event objects. void reply( FE pv_FE ) Results in calling REPLYX to complete the Guardian file-system OPEN. API Data Server::Address *ip_address From the open message data, uniquely identifies the connection within this process. short iv_message_tag From FILE_GETRECEIVEINFO_.
void stop_listening() Called by a listener event handler user. Unregisters itself from the Receive_EH. gcfehoss.h Classes In general, the classes, methods, and data items declared in the gcfehoss.h header file ($NSD_ROOT/include/nsdevent/gcfehoss.h) are for internal use by NonStop CORBA. The single method described below, however, can be used in legacy server wrappers that issue nowait Pathsend requests without the use of a jacket procedure.
Saves an Fw_MD and its buffer for later reuse. This is the preferred method for disposing of an Fw_MD. static Fw_MD *get_3_tuple( const unsigned long pv_buffer_length ); Returns a new or recycled Fw_MD that is associated with a new or recycled buffer of the size indicated by pv_buffer_length. The default size (Fw_Message::DEFAULT_BUFFER_SIZE) should be passed as pv_buffer_length unless a larger buffer is desired for efficiency reasons.
Combination of reset_read and reset_write. void reset_read( void ); Returns ip_user_read and iv_data_bytes to their original values. void reset_write( void ); Returns ip_user_write, iv_data_bytes, and iv_free_bytes to their original values. static void set_test_no_MDs( const bool pv_no_MDs ); Allows simulation of resource shortage for testing what happens if the ORB cant allocate a new Message Data descriptor. When pv_no_MD is true, the factory methods fail.
See also Fw_Transfer_EH_User and NSDEFw_GFS. API Methods Fw_Message( void ); Constructor for an empty message. Note that the preferred method for obtaining an Fw_Message is get_message; ~Fw_Message(); Destructor. Deletes any associated Fw_MDs. Note that the preferred method for disposing of an Fw_Message is free_Message. static void free_message( Fw_Message *pp_message ); Frees any associated Fw_MDs, saves the Fw_Message for subsequent reuse. This is the preferred method for disposing of an Fw_Message.
void read( char *pp_sink, const unsigned long pv_count ); Attempts to copy pv_count bytes from the list of Fw_MDs in the Fw_Message to the location pointed to by pp_sink. The transfer begins at the ip_user_read of the current read Fw_MD. If the current Fw_MD is exhausted, the next Fw_MD is made the current and the operation continues until pv_count bytes have been transferred or the list of Fw_MDs is exhausted. iv_bytes_read is incremented by the lesser of pv_count or the actual number of bytes read..
Fw_Message, and made the current write Fw_MD. This is repeated until pv_count bytes have been transferred. iv_size is incremented by pv_count. void write( char *pp_source, unsigned long pv_count, unsigned long pv_align ); The same as the previous write method, except the current write position is advanced to a multiple of pv_align. This method is used by the ORB for marshalling common data representation (CDR) encoded messages.
sockeh.h Classes The topics that follow describe the various classes declared in the sockeh.h header file ($NSD_ROOT/include/nsdevent/sockeh.h). Class Fw_Sock_Address API Methods Fw_Sock_Address() Creates an Fw_Sock_Address object. ~Fw_Sock_Address() Destructor for the current Fw_Sock_Address object. static unsigned hash( const Fw_Sock_Address &pr_address ) Rogue Wave dictionary-compatible hash method.
void disconnect() Directs the event handler to terminate its connection. static EH* get_EH() Factory. Fw_Sock *get_ip_socket() Returns the IP socket. void put_EH( Fw_Sock_Client_EH *pp_EH ) Recycler. void send_message( Fw_Message *pp_msg ) Directs the event handler to deliver a full message over its connection. void set_trace( bool pv_trace ) Sets tracing on or off for the socket client event handler. API Data bool cv_trace_enabled Read-only; indicates whether tracing is set.
Directs the event handler to deliver a full message over its connection. void set_trace( bool pv_trace ) Sets tracing on or off for the socket server event handler. API Data bool cv_trace_enabled Read-only; indicates whether tracing is set. Fw_Sock_Address iv_address Socket address. Class Fw_Sock_Listener_EH API Methods Fw_Sock_Listener_EH() Creates an Fw_Sock_Listener_EH object. ~Fw_Sock_Listener_EH() Destructor for the current Fw_Sock_Listener object. Fw_Sock *get_ip_socket() Returns the IP socket.
Chapter 8. NonStop CORBA vthread Interface Chapter 10.
Chapter 10. Exception Handling: NonStop CORBA Minor Codes Chapter 10.
This minor code occurs in the context of a BAD_PARAM system exception. This is generated when the value of an enum to be marshalled is not a legal value for the enumeration. 501 -1314062837 - MINOR_SEQ_CONSTRUCTOR This minor code occurs in the context of a NO_MEMORY system exception. A sequence constructor failed to obtain memory for the sequence elements. 502 -1314062838 - MINOR_SEQ_COPY_CONSTRUCTOR This minor code occurs in the context of a NO_MEMORY system exception.
This minor code occurs in the context of a NO_MEMORY system exception. A sequence constructor failed to obtain memory for a sequence of strings. 511 - 1314062847 - MINOR_STR_SEQ_INDEX This minor code occurs in the context of a BAD_PARAM system exception. The operator( ) method was asked to return a sequence of strings that does not exist. 512 - 1314062848 - MINOR_STR_SEQ_ASSIGNMENT This minor code occurs in the context of a NO_MEMORY system exception.
522 - 1314062858 - MINOR_ILLEGAL_DISCR_SET This minor code occurs in the context of a BAD_PARAM system exception. This exception is raised in the _d( ) method for a union and indicates that the user tried to set the union discriminant to an illegal value. The requested action is not performed. 523 - 1314062859 - MINOR_BAD_STRUCT_VAR This minor code occurs in the context of a BAD_PARAM system exception. A _var class was asked to marshal itself but the ipVar member was not initialized.
had been previously assigned to an outstanding GIOP Request message. The user may have corrupted the request ID. Another (highly unlikely) scenario is that the request id value (a long data type) wrapped around (was reissued) during the time period that the preceding request was outstanding. 530 - 1314062866 - MINOR_ROOT_NC_NOT_FOUND This minor code indicates an error in the NonStop CORBA configuration database. A call to org.omg.CORBA.ORG.
POA::activate_object_with_id( ), this minor code indicates that the object id given to the POA was not generated by the POA executing the call (this( ) POA). Note: When a server is restarted, any POA on that server that has LifespanPolicy::PERSISTENT policy does not need to (and in fact does not) recognize all object ids. 601 - 1314062937 - MINOR_BAD_SERVANT_MANAGER This minor code occurs in the context of a BAD_PARAM system exception.
actual state is Discarding; otherwise, the OBJ_ADAPTER exception is raised, typically because the state is Inactive. (If the state were Holding, an exception would not be raised; instead, the request would be delayed (held) until the POA manager was requested to change to another state. 607 - 1314062943 - MINOR_WRONG_PROCESS This minor code occurs in the context of an INV_OBJECT system exception. It indicates that a request was delivered to a server, but the IOR indicates a different server.
the client sending the request is a not a NonStop CORBA ORB and the client is trying to invoke a method on a CORBA object that NonStop CORBA currently does not support. Turn POA tracing on (environment variable NSDOM_CFG_TRACE_POA) to see the name of the operation that is having a problem 613 - 1314062949 - MINOR_POA_DESTROYED This minor code occurs in the context of an OBJECT_NOT_EXIST system exception.
that a demarshalled length value is too large to be legal. Either the buffer is corrupt or the sender marshalled something different from what is being demarshalled. 704 - 1314063040 - MINOR_NOT_IN_VALUE_DICT Occurs when demarshalling an indirect value and the type has not been previously encountered. 707 - 1314063043 - MINOR_ILLEGAL_REPO_ID Occurs when demarshalling a value with an invalid repository ID flag field.
● Ensure the client configuration has one or more profiles in common with the reference ● Ensure the server is running ● Ensure the server is configured with one or more profiles ● Ensure the server's ORB is available ● Ensure at least one of the IOR profiles has a reachable address Release the reference and obtain a new one 1003 - 1314063339 - MINOR_INITIALIZATION ● This minor code occurs in the context of a COMM_FAILURE system exception.
Location Service Daemon (LSD) Minor Code Values (Numbers 1100 - 1199) 1102 - 1314063438 - MINOR_NO_DIRECT_HOST This minor code occurs in the context of an OBJECT_NOT_EXIST system exception. This minor code indicates that the LSD was unsuccessful when it attempted to find the direct address of the configured tcp server in the configuration database. 1103 - 1314063439 - MINOR_NO_DIRECT_PORT This minor code occurs in the context of an OBJECT_NOT_EXIST system exception.
To correct this problem, first verify the validity of the Comm Server(s) configuration settings. Next, ensure that the Comm Server(s) were correctly initialized and that they are running and able to receive requests. If problems are found, you must fix the configuration and restart the Comm Server server pool. You can do that through the NonStop Distributed Component Console. 1107 - 1314063443 - MINOR_NO_PP_CONN This minor code occurs in the context of an INTERNAL system exception.
Data Conversion Minor Code Values (Numbers 1500 - 1599) 1500 - 1314063836 - MINOR_UNDERFLOW This minor code occurs in the context of a MARSHAL system exception. An IEEE floating-point value or an HP NonStop proprietary floating-point value was too small to be represented in the other format. 1501 - 1314063837 - MINOR_OVERFLOW This minor code occurs in the context of a MARSHAL system exception.
client role was able to start a transaction by way of Current( ), after which it attempted to send a request to a transaction object. The ORB was unable to find the OTS application runtime component responsible for generating the corresponding service context for the GIOP Request message. Because the application was at one time successful in using the OTS runtime component, a memory corruption problem may exist in either the application or the ORB.
This minor code occurs in the context of an INTF_REPOS system exception. It indicates that the Interface Repository database failed to be initialized. The cause of the problem could be missing database files, database files with invalid read/write permission, or corrupted database files. 1801 - 1314064137 - MINOR_INVALID_IR_OBJECT This minor code occurs in the context of an INTF_REPOS system exception. It indicates that a method was invoked on the wrong interface definition object.
arguments( ) has been called. 1901 - 1314064237 - MINOR_SET_RESULT_TWICE This minor code occurs in the context of a BAD_INV_ORDER system exception. Similar to the MINOR_SET_RESULT_BEFORE_ARGS minor code described above, this occurs if set_result( ) is called after a previous call to set_result( ). 1902 - 1314064238 - MINOR_SET_RESULT_AFTER_EX This minor code occurs in the context of a BAD_INV_ORDER system exception.
In addition, this minor code can be generated if you call set_result( ) without having previously called ctx( ) when the operation IDL contains a context expression. 1908 - 1314064244 - MINOR_NOT_AN_EXCEPTION This minor code occurs in the context of a BAD_PARAM system exception. In normal DSI processing, the user can indicate that an exception is to be returned to the client by calling set_exception( ).
An ILSD reported that the file found at the prescribed address is larger than 4096. 2002 - 1314064338 - MINOR_CORBANAME_NOT_NC Raised by the ILSD when asked to resolve a corbaname URL whose corbaloc element does not identify a CosNaming::NamingContext. 2003 - 1314064339 - MINOR_INS_THREAD_CREATE Occurs when the ILSD is unable to launch a thread when attempting resolution of a corbaname URL.
Secure Socket Layer (SSL) Minor Code Values (Numbers 3200 - 3299) 3200 - 1314065536 - SSL_config_err Occurs when SSL encounters a configuration error. 3201 - 1314065537 - SSL_alert_close_notify Occurs when a close notify is received. 3202 - 1314065538 - SSL_alert_unexpected message Occurs when an inappropriate message is received. This alert signals that one of the implementations is broken and generating inappropriate messages or sending messages in an incorrect order.
3203 - 1314065548 - SSL_alert_certificate_expired Occurs when one of the certificates has expired. 3203 - 1314065549 - SSL_alert_certificate_unknown Occurs when a certificate error alert is not describable by other alerts. 3203 - 1314065550 - SSL_alert_illegal_parameter Occurs when one of the handshake fields was out of range or inconsistent. 3203 - 1314065551 - SSL_alert_unknown_ca Occurs when the certificate received is signed by a CA that the implementation does not have a certificate for.
SSL X509 Minor Code Values SSL_X509_UNABLE_TO_GET_ISSUER_CERT There was a problem verifying the server or client certificate because the issuing CA's certificate was not present in the certificate chain. SSL_X509_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY Unable to get the issuing CA certificate public key. The issuing CA certificate is invalid. SSL_X509_CERT_SIGNATURE_FAILURE There was a problem verifying the server or client certificate because one of the certificates in the chain was not the correct certificate.
The certificate's pathLenConstraint number was exceeded. SSL_X509_INVALID_PURPOSE The certificate's key usage field and purpose was invalid. SSL_X509_SUBJECT_ISSUER_MISMATCH The certificate issuer name did not match the subject name in the issuer's certificate. SSL_X509_AKID_SKID_MISMATCH The issuer's key id did not match the subject's issuer's key id. SSL_X509_AKID_ISSUER_SERIAL_MISMATCH The issuer's key id serial number did not match the subject's issuer's key id serial number.
Chapter 11. NonStop CORBA System Error Messages Chapter 11.
Common Error Messages (Error numbers 1000 1099) 1001 - ZDOM-GEN-ERR-NO-MEMORY User Action: During ORB initialization, access to the NSDCFGDB configuration database is initiated. If an internal database object can not be instantiated, a no memory message is posted. This message might indicate a corrupt database. 1002 - ZDOM-GEN-ERR-CONFIG User Action: During ORB initialization, access to the NSDCFGDB configuration database is initiated.
User Action : Five attempts have been made to open a database named name with unsuccessful results. Check the name, permissions and filecode (the filecode type should be 426). 1212 - Attempted delete of database failed: Delete for database failed: name User Action: Unable to delete the requested database. Check the database permissions or the number of existing opens for the database.
User Action: This error occurs during direct tcp_server initialization if the profile@ORB{host_name} key can't be retrieved from the configuration database. Verify that the server has the correct NSDOM_CFG_DBM environment; verify that the server should be configured as a direct tcp_server (as opposed to USE_COMM_SERVER), verify that the configuration database contains a valid profile@ORB{host_name} key and value. 1604 -Configuration error.
1613 - Expected null for object key name User Action: This error is generated when a POA is creating an object reference if the proxy's object key is not null. 1614 - GIOP Proxy marshalling 0 profiles User Action: This error occurs during the marshalling of an object reference, either as part of object_to_string or generating the response data for an out param or result, and there are no protocols enabled. Verify that the profile used with the process is present in the configuration database.
name is too large. This field is generated by NonStop CORBA. This error can indicate a serious error. Capture the ior and contact your service provider. 1624 - Object key error. Bad subdev name name User Action: This error occurs during demarshalling of a file system profile if the subdevice field is too long. This field is generated by NonStop CORBA. This error can indicate a serious error. Capture the ior and contact your service provider.
configured profile that has a port number of zero. Change the configured profile so that the port number is nonzero. 1635 - (ZDOM-ORB-ERR35) User Action: The Java ORB contains an internal event framework used to access the standard TCP/IP, File System and Pathway protocols. If there is a critical error during the processing of a framework event message, the Java ORB will generate a ZDOM-ORB-ERR35 message with the current Java stack trace as the message body. The event framework then exits the application.
cs_name@comm_server{host_name} key in the configuration database. Verify that the Comm Server server pool has the correct NSDOM_CFG_DBM env. Also verify that the Comm Server server pool and the configuration database names are correct. 2002 - Configuration error. CommServer name has no port number User Action: This error occurs when a Comm Server fails to find the cs_name@comm_server{port_number} key in the configuration database. Verify that the Comm Server server pool has the correct NSDOM_CFG_DBM env.
User Action: This error occurs when the subdevice name is relaying a request; the tsmp relay profile contains a system name that is too large. This field is generated. Capture the IOR and contact your service provider. 2012 - Internal error. Address not found User Action: This is a file system error. Contact your service provider. 2013 - Initialization error. CommServer cs_name: listen failed User Action: This message is generated if a Comm Server cannot listen on its configured address.
2204 Cannot write IR object User Action: Make sure the IR database has read/write permission. 2205: Cannot insert key/value for IR object User Action: Make sure the IR database has read/write permission. 2206: Cannot read IR object from the IR database. IR object name User Action: Make sure the IR database has read permission. 2207: IR object type is invalid for the operation User Action: Make sure the IR object is of right type to invoke the operation.
Event Service Error Messages (Error numbers 2600 - 2799) 2601 - push_to_consumer got system exception when tried to 'push' exception# User Action: The Event Service was unable to sucessfully interact with a an application provided push consumer. The push consumer did not receive an event. The event service ceases to try to interact with the push consumer. Verify that no unexpected error occurred in an application provided push consumer.
User Action: During Event Service initialization, if an ORB object can not be instantiated, the service exits posting an "ORB_init failed" message. This message might indicate an environmental setup problem with the NonStop Corba subsystem. Naming Service Error Messages (Error numbers 2800 - 2999) 2801 - Could not execute resolve_initial_references successfully User Action: Internal error, contact your service provider.
User Action: When invoking the list method on a naming context, the ORB cannot successfully narrow an object returned from the orb's resolve_initial_references("RootPOA") method to a PortableServer::POA. This is an internal error. 2815 - Could not insert record into naming database User Action: This error message will also report the binding name component id of "NEW_CONTEXT" if the error was generated when you were attempting to create a new context.
JTS Error Messages (Error numbers 3600 - 3799) 3601 - CORBA services error message-text User Action: NonStop CORBA services either are not operating or are not installed correctly. JTS could not get the TransactionFactory object from the Naming Service. Ensure that the CORBA services are installed and operating properly, and that the correct versions of all other required software are installed. Then retry the operation. If the problem persists, contact your service provider.
Contact your service provider. 3609 - Transaction creation error message-text User Action: A JTS internal error occurred. The transaction could not be created. Contact your service provider. 3610 - Thread context error message-text User Action: A JTS internal error occurred. JTS could not get the thread context. Contact your service provider. 3611 - Transaction rollback error message-text User Action: A JTS internal error occurred. The current transaction could not be rolled back.
or a list of errors returned from OpenSSL. 4203 - SSLIOP configured cipher suites cipher suite list User Action: No action required. Verify that the cipher suites are the desired sets. The cipher-suite list shows the configured cipher suites. 4204 - SSL alert received: alert description User Action: Verify the alert description and take correction action (if any). Verify the cipher suites are the desired set. The alert description lists the possible alerts you may receive. Chapter 10.
Index Index A Any Values, Dynamic Management of, Dynamic Management of Any Values (9.0) B Bi-Directional GIOP, Bi-Directional GIOP (15.8) IIOP, Bi-Directional IIOP (15.8.1) C C++ Language Mapping, C++ Language Mapping Code Set Conversion, ORB-Interoperability Architecture: Code Set Conversion (13.10) Core CORBA, Core CORBA D DEC ESIOP, The DCE ESIOP (16) Dynamic Invocation Interface, Dynamic Invocation Interface: sendp (7.2.8) Dynamic Management of Any Values, Dynamic Management of Any Values (9.
Fw_Transfer_EH_User class, Class Fw_Transfer_EH_User Error Messages Comm Server Error, Comm Server Error Messages (Error numbers 2000 - 2199) Database Error, Database Error Messages (Error numbers 1200 - 1399) Event Framework, Event Framework Messages (Error numbers 1100 - 1199) Event Service Error, Event Service Error Messages (Error numbers 2600 - 2799) IIOP/SSL Error, IIOP/SSL Error Messages (Error numbers 4200 - 4299) Interface Repository Error, Interface Repository Error Messages (Error numbers 2200 -
NSDEFw_GFS::Listener::Event class, Class NSDEFw_GFS::Listener::Event NSDEFw_GFS::Receive_EH class, Class NSDEFw_GFS::Receive_EH NSDEFw_GFS::Server::Address class, Class NSDEFw_GFS::Server::Address NSDEFw_GFS::Server::EH class, Class NSDEFw_GFS::Server::EH NSDEFw_GFS::Server::Event class, Class NSDEFw_GFS::Server::Event GIOP Bi-Directional, Bi-Directional GIOP (15.8) I IDL Syntax and Semantics, OMG IDL Syntax and Semantics: Grammar (3.
Event Service Error, Event Service Error Messages (Error numbers 2600 - 2799) IIOP/SSL Error, IIOP/SSL Error Messages (Error numbers 4200 - 4299) Interface Repository Error, Interface Repository Error Messages (Error numbers 2200 - 2399) JTS Error, JTS Error Messages (Error numbers 3600 - 3799) Naming Service Error, Naming Service Error Messages (Error numbers 2800 - 2999) ORB Error, ORB Error Messages (Error numbers 1600 - 1799) OTS Error, Object Transaction Service (OTS) Error Messages (Error numbers 2400
N Naming Service, Naming Service O Object Service Context, ORB-Interoperability Architecture: Standard Service Context (13.6.7) ORB Interface, ORB Interface: The ORB Operations (4.2) ORB-Interoperability Architecture, ORB-Interoperability Architecture: Other Components (13.6.6.3) OSFM Registry Interfaces, ORB-Interoperability Architecture: Relevant OSFM Registry Interfaces (13.10.5) P Portable Interceptors, Portable Interceptors (21) Primitive Types, General InterORB Protocol: Primitive Types (15.3.
Naming Service Error, Naming Service Error Messages (Error numbers 2800 - 2999) ORB Error, ORB Error Messages (Error numbers 1600 - 1799) OTS Error, Object Transaction Service (OTS) Error Messages (Error numbers 2400 - 2599) Trace Error, Trace Error Messages (Error numbers 1400 - 1599) T The Object Model, The Object Model: Types (1.2.4) timer.h classes, timer.h Classes Transaction Service, Transaction Service TypeCode, General InterORB Protocol: TypeCode (15.3.5.