HP NonStop CORBA 2.6 Programmer's Reference HP NonStop CORBA 2.6 Programmer's Reference Part number: 525938001. Published November 2003. Legal Notice Abstract This manual summarizes the ways in which the HP NonStop" CORBA® 2.6 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 product is based on the OMG specifications. Product Version: HP NonStop" CORBA® 2.
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 2003 Hewlett-Packard Development Company L.P. Hewlett-Packard, HP, the HP invent logo, Compaq, the Compaq logo, Alpha, Atalla, CLX, Deskpro, Enform, Expand, Guardian, Himalaya, Inspect, Integrity, NonStop, OpenVMS, PayMaster, ProLiant, ServerNet, SignMaster, SNAX, Tandem, VAX, VMS, and WebSafe are trademarks of Hewlett-Packard Development Company L.P. in the U.S. and/or other countries.
subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause in DFARS 252.227-7013. Hewlett-Packard Development Company L.P. 10600 Ridgeview Court Cupertino, CA 95014 USA Rights for non-DOD U.S. Government Departments and Agencies are as set forth in FAR 52.227-19(c)(1,2). Export of the information contained in this publication may require authorization from the U.S. Department of Commerce. HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.
New and Changed Information New and Changed Information This edition of the HP NonStop CORBA 2.6 Programmer's Reference describes the following new features for HP NonStop CORBA 2.6: ● Support for the OMG CORBA 2.6.1 specification. The section number headings and specification versions have been updated to match the current OMG CORBA 2.6.1 specification. ● Enhancements to the ORB interface. See Section 4, ORB Interface. ● Support for the new GIOP/IIOP versions 1.1 and 1.2.
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 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 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 Interface feature.
Chapter 3. C++ Language Mapping Chapter 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.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.1 and 1.37.
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.8) The C++ iostream insertion and extraction operators are not available for WString_var and WString_out types.
does not generate a default assignment operator, making it easy to generate value box objects with incorrect reference counts. Abstract Interface Base (1.18.1) NonStop CORBA does not support the AbstractBase::_to_object and AbstractBase::_to_value operations. A protected copy constructor should be generated for abstract interface classes. The NonStop CORBA IDL compiler generates a private copy constructor. Mapping for Exception Types (1.
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. NonStop CORBA does not support the fixed typecode operations Typecode::fixed_digits and Typecode::fixed_scale . Servant Reference Counting (1.37.1 and 1.37.
} 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 2.6 supports all mandatory Naming Service interfaces and features described in the OMG specification. NonStop CORBA 2.6 enhances the implementation through scalability. There are no API-level enhancements. Note that NonStop CORBA 2.
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 2.6 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.
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.
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. timer.h Classes Global Variables API Data typedef long Fw_Ticks Ticks attribute. class Fw_Time_Stamp Following are three miscellaneous useful constants from the class Fw_Time_Stamp.
API Methods NSDEFw_Timer() Creates a timer object. NSDEFw_Timer( Fw_Ticks pv_ticks ) Creates a timer object and sets the value of the ticks attribute. ~NSDEFw_Timer() Destructor for the current timer object. Fw_Ticks get_ticks() Returns the current value of the ticks attribute. void set_ticks( Fw_Ticks pv_ticks ) Sets the value of the ticks attribute. void wait() Blocks the callers thread for the number of ticks specified by the current value of the ticks attribute.
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 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, then 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.
General Minor Code Values (Numbers 500 - 599) 500 -1314062836 - MINOR_BAD_ENUM_RANGE 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.
sequence. Either no memory (heap) is available to the program or the sequence size is incorrect. This situation may happen if the ORB tries to demarshal a corrupt buffer or one that was marshalled in a way different than expected. 510 - 1314062846 - MINOR_STR_SEQ_CONSTRUCTOR 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.
521 - 1314062857 - MINOR_ILLEGAL_DISCRIMINANT This minor code occurs in the context of a BAD_PARAM system exception. During demarshalling of a union, the union discriminant value was found to be illegal for the union. 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.
529 - 1314062865 - MINOR_DUPLICATE_REQUEST_ID This minor code occurs in the context of an INTERNAL system exception. While attempting to send a request, the ORB discovered a GIOP Request message header contained a request id that had been previously assigned to an outstanding GIOP Request message. The user may have corrupted the request ID.
minor code with the exception to give a more precise context to detail the system exception. 600 - 1314062936 - MINOR_BAD_OBJECT_ID This minor code occurs in the context of a BAD_PARAM system exception. Thrown from 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).
606 - 1314062942 - MINOR_WRONG_STATE This minor code occurs in the context of either a TRANSIENT or OBJ_ADAPTER system exception. In either case, the minor code indicates that the POA manager is not in the correct state (it is not active) in order to process a request. A TRANSIENT exception is generated when the actual state is Discarding; otherwise, the OBJ_ADAPTER exception is raised, typically because the state is Inactive.
during the process of servicing a request, the operation name present in the request was not among those handled by the servant. This indicates, typically, that the type of the servant handling the request does not match that of the client's target object. This is illegal. This might happen if an application servant manager returned an incorrect servant for a request.
that an IOR received in a GIOP message result or parameter was found to be invalid. 703 - 1314063039 - MINOR_INVALID_LENGTH This minor code occurs in the context of a MARSHAL system exception. This minor code indicates 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.
Suggested actions: ● Ensure the reference (IOR) is valid ● 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
❍ If the profile of a tsmp_server is missing the pathmon or server_class clause, an event will be generated that specifies which clause is missing. 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.
Similar to the NO_CS_HOST_NAME minor code detailed above, this minor code occurs when the LSD has found the Comm Server to use, but it could not find the Comm Server's port_number. 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.
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 then 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.
Bootstrap Daemon (BSD) Minor Code Values (Numbers 3100 - 3199) 3100 - 1314065436 - MINOR_BSD_BAD_OBJECT_KEY Occurs when the object key field of the request is not set to "INIT". 3101 - 1314065437 - MINOR_BSD_BAD_OBJECT_ID Occurs when the file requested to be opened from the resolve_initial_reference has a length of zero. 3102 - 1314065438 - MINOR_BSD_OBJECT_ID_NOT_FOUND Occurs when the file requested to be opened from the resolve_initial_reference cannot be opened.
3203 - 1314065542 - SSL_alert_decompression_failure Occurs when a record could not be decompressed. This alert should not be seen since compression is rarely used. 3203 - 1314065543 - SSL_alert_handshake_failure Occurs when there are problems with the SSL handshake. It could indicate that no common cipher can be negotiated. It could indicate that the server or client certificate could not be authenticated. 3203 - 1314065544 - SSL_alert_no_certificate Occurs when no appropriate certificate is available.
3203 - 1314065556 - SSL_alert_protocol_version Occurs when the client used an unrecognized protocol version. 3203 - 1314065557 - SSL_alert_insufficient_security Occurs when the cipher suites offered by the client were weaker than required by the server. 3203 - 1314065558 - SSL_alert_internal_error Occurs when the transmitting implementation encountered some of sort of memory allocation, hardware failure, or other internal error.
SSL_X509_SELF_SIGNED_CERT_IN_CHAIN There was an error finding the self-signed CA certificate to verify the chain. SSL_X509_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 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_VERIFY_LEAF_SIGNATURE There was a problem verifying the certificate chain. SSL_X509_CERT_CHAIN_TOO_LONG The certificate chain was greater than the maximum supported number supported of eight.
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.
User Action: This error occurs when a Comm Server fails to its listening socket transport name. Verify that cs_name@comm_server{tcp_process} is correctly configured. 2004 - NID interposed id Server Reply : ctx not found address User Action: This error occurs as a Comm Server is relaying a reply message; the interposed request id (also known as the New ID) does not map to the context held for a previously relayed request. 2005 - Object key error.
itself with a failure completion status. Pathway will attempt to restart it, allowing the Comm Server to survive any tranisient TCP or configuration database problems. 2014 - Configuration error. CommServer name: configuration error, port_number must be non-zero User Action: This error message occurs if the port_number key is zero. Change the port_number key of the CommServer to a value other than zero. 2015 - Configuration error.
User Action: Make sure the IR object is of right type to invoke the operation. 2208 Cannot initialize IR database User Action: For read mode, make sure the IR database exists and has read permission. For update mode, make sure you have the permission to create and write to the database. 2209: Invalid Container for the Contained object User Action: Make sure to put the Contained object into the right Container object. 2210: Cannot find IR object in the IR database. IR object name User Action: None.
failure exception was raised, the event service ceases to try to interact with the offending pull supplier. Verify that no unexpected error occurred in an application provided pull supplier. If the the pull supplier correctly ceased to exist, no further action is necessary. Otherwise, if a comm failure occurred, the pull supplier should be restarted and reregistered with the event channel.
2804 - Could not delete record from Naming database User Action: When trying to invoke the destroy method on a naming context object, the ORB is unable to delete the naming context record from the naming database. This error indicates a possible corruption of the naming database. Purge and reconfigure the naming database. 2805 - Could not initialize Naming database name User Action: Possible database corruption, purge database and rerun initialization script.
User Action: Internal error, contact your service provider. 2822 - Could not find POA ['NamingContextPOA' | 'BindingIteratorPOA'] User Action: Internal error, contact your service provider. 2823 - Could not create reference with ID User Action: Internal error, contact your service provider. 2824 - Could not get record from naming database, Could not find CosNaming::NamingContext start record in database. User Action: Check that the naming database file exists and the user has read permission.
User Action: A JTS internal error occurred. Transaction rollback_only could not be set during sending_reply. Contact your service provider. 3603 - Transaction suspend error message-text User Action: A JTS internal error occurred. The current transaction could not be suspended. Contact your service provider. 3604 - Transaction deactivation error message-text User Action: A JTS internal error occurred. The current transaction could not be deactivated. Contact your service provider.
3613 - Coordinator access error message-text User Action: The Coordinator object is not available in the current context. Review the client code for correct usage and correct the problem as needed. message-text includes dynamically-generated variable text identifying the particular error condition. Most error conditions reported by this error correspond to CORBA exceptions, and the message contains text as generated by the exception's class.
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.