summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfields_t <fields_t@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-09-22 17:51:57 +0000
committerfields_t <fields_t@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-09-22 17:51:57 +0000
commitde682ee18111c97481bef6243c691b98f502578b (patch)
treef7a7abc36834b9d6f166137ea2a6f3d756af0ca6
parente5099ef467666d6cfc859cc3f89452d28de56cd9 (diff)
downloadATCD-de682ee18111c97481bef6243c691b98f502578b.tar.gz
Wed Sep 22 10:55:30 MST 2004 Trevor Fields <fields_t@ociweb.com>
-rw-r--r--TAO/ChangeLog241
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp3
2 files changed, 243 insertions, 1 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 7accde80526..60cbfd93d20 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,244 @@
+Wed Sep 22 10:55:30 MST 2004 Trevor Fields <fields_t@ociweb.com>
+
+ * orbsvcs/ImplRepo_Service/Activator_Loader.h:
+ * orbsvcs/ImplRepo_Service/Activator_Loader.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Loader.h:
+ * orbsvcs/ImplRepo_Service/Locator_Loader.cpp:
+ * orbsvcs/ImplRepo_Service/activator_export.h:
+ * orbsvcs/ImplRepo_Service/locator_export.h:
+ * orbsvcs/ImplRepo_Service/utils.h:
+ * orbsvcs/ImplRepo_Service/Activator_NT_Service.h:
+ * orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp:
+ * orbsvcs/ImplRepo_Service/Activator_Options.h:
+ * orbsvcs/ImplRepo_Service/Activator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.h:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.h:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Activator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/Iterator.h:
+ * orbsvcs/ImplRepo_Service/Iterator.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_NT_Service.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Multi_Iterator.h:
+ * orbsvcs/ImplRepo_Service/Multi_Iterator.cpp:
+ * orbsvcs/ImplRepo_Service/README.txt:
+ * orbsvcs/ImplRepo_Service/Server_Info.h:
+ * orbsvcs/ImplRepo_Service/Server_Info.cpp:
+ * orbsvcs/ImplRepo_Service/Server_Repository.h:
+ * orbsvcs/ImplRepo_Service/Server_Repository.cpp:
+ * orbsvcs/ImplRepo_Service/XML_ContentHandler.h:
+ * orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp:
+ * orbsvcs/ImplRepo_Service/tao_imr_i.h:
+ * orbsvcs/ImplRepo_Service/tao_imr_i.cpp:
+
+ * orbsvcs/orbsvcs/IOR_Multicast.h:
+ * orbsvcs/orbsvcs/IOR_Multicast.cpp:
+
+ * orbsvcs/tests/ImplRepo/run_test.pl:
+
+ * tao/PortableServer/ImR_Locator.pidl:
+ * tao/PortableServer/ImR_LocatorC.h:
+ * tao/PortableServer/ImR_LocatorC.i:
+ * tao/PortableServer/ImR_LocatorC.cpp:
+ * tao/PortableServer/ImR_LocatorS.h:
+ * tao/PortableServer/ImR_LocatorS.i:
+ * tao/PortableServer/ImR_LocatorS.cpp:
+ * tao/PortableServer/ImplRepo.pidl:
+ * tao/PortableServer/ImplRepoC.h:
+ * tao/PortableServer/ImplRepoC.i:
+ * tao/PortableServer/ImplRepoC.cpp:
+ * tao/PortableServer/ImplRepoS.h:
+ * tao/PortableServer/ImplRepoS.i:
+ * tao/PortableServer/ImplRepoS.cpp:
+
+ Added support for using the ImR locator and activator
+ services within the ACE Service Configurator framework.
+ Split locator and activator into separate libraries and
+ executables.
+ Refactored Activator_Options and Locator_Options to
+ facilitate use in separate libraries.
+ Fixed problems with activator persistence including support
+ for environment variables.
+ Fixed problems with the list() operation and iterators,
+ although the better solution will likely be to eliminate
+ the iterators entirely.
+ Simplified Service_Info class into a simple struct which
+ further simplified and enhanced the startup code for servers.
+ Refactored some locator servant options to throw NO_IMPLEMENT
+ until the IDL is updated to correctly remove these operations.
+ Fixed many miscellaneous bugs and performance problems.
+ Removed the ready_check() feature, as the current implementation
+ was broken, and the correct solution is relatively
+ straightforward, and will likely be added soon.
+ Fixed the broken ImR_Multicast implementation. A char* is NOT
+ a string, and should never be used as such. ACE_CString or the
+ equivalent is a much better choice. There are likely other
+ lurking bugs of this type in ACE/TAO.
+ Removed the unused logical_server from the ServerInformation
+ type in ImplRepo.pidl. Also removed the Address typedef and
+ changed the terminology from location to partial_ior.
+
+ * orbsvcs/examples/ImR/Combined_Service/test.idl:
+ * orbsvcs/examples/ImR/Combined_Service/ImR_Combined_Service.mpc:
+ * orbsvcs/examples/ImR/Combined_Service/combined.cpp:
+ * orbsvcs/examples/ImR/Combined_Service/controller.cpp:
+ * orbsvcs/examples/ImR/Combined_Service/dynserver.h:
+ * orbsvcs/examples/ImR/Combined_Service/dynserver.cpp:
+ * orbsvcs/examples/ImR/Combined_Service/dynserver_export.h:
+ * orbsvcs/examples/ImR/Combined_Service/readme:
+ * orbsvcs/examples/ImR/Combined_Service/run_test.pl:
+ * orbsvcs/examples/ImR/Combined_Service/service_config.idl:
+ * orbsvcs/examples/ImR/Combined_Service/start_all.conf:
+ * orbsvcs/examples/ImR/Combined_Service/test.cpp:
+ * orbsvcs/examples/ImR/Combined_Service/test_server.cpp:
+
+ Added an example of using ImR_Locator and ImR_Activator service
+ from the ACE Service Configurator. The test starts a locator,
+ activator, and test server in one process using the service configurator
+ framework. Also provides a corba-ified service configurator that can
+ be controlled using the provided command line client.
+
+ * orbsvcs/ImplRepo_Service/Repository_Configuration.h:
+ * orbsvcs/ImplRepo_Service/Repository_Configuration.cpp:
+ * orbsvcs/ImplRepo_Service/Server_Repository.h:
+ * orbsvcs/ImplRepo_Service/Server_Repository.cpp:
+ * orbsvcs/ImplRepo_Service/XML_ContentHandler.h:
+ * orbsvcs/ImplRepo_Service/XML_ContentHandler.cpp:
+ * tao/PortableServer/ImR_Activator.pidl:
+ * tao/PortableServer/ImR_Locator.pidl:
+ * tao/PortableServer/ImR_LocatorC.h:
+ * tao/PortableServer/ImR_LocatorC.i:
+ * tao/PortableServer/ImR_LocatorC.cpp:
+ * tao/PortableServer/ImR_LocatorS.h:
+ * tao/PortableServer/ImR_LocatorS.i:
+ * tao/PortableServer/ImR_LocatorS.cpp:
+ * tao/PortableServer/ImplRepo.pidl:
+ * tao/PortableServer/ImplRepoC.h:
+ * tao/PortableServer/ImplRepoC.i:
+ * tao/PortableServer/ImplRepoC.cpp:
+ * tao/PortableServer/ImplRepoS.h:
+ * tao/PortableServer/ImplRepoS.i:
+ * tao/PortableServer/ImplRepoS.cpp:
+
+ Removed these files. Most were only necessary due to the complication of
+ splitting the persistent state between the activator and locator.
+
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp (is_alive):
+
+ Masked out all bits in the minor code except those that correspond
+ to the "location". See corbafwd.h for information about how the
+ minor code is laid out.
+
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+
+ Fixed ORB_init calls to specify a hopefully unique ORBid
+ for the activator and locator orbs.
+
+ * orbsvcs/ImplRepo_Service/Activator_Info.h:
+ * orbsvcs/ImplRepo_Service/Activator_Info.cpp:
+ * orbsvcs/ImplRepo_Service/Activator_Loader.h:
+ * orbsvcs/ImplRepo_Service/Activator_NT_Service.h:
+ * orbsvcs/ImplRepo_Service/Activator_NT_Service.cpp:
+ * orbsvcs/ImplRepo_Service/Activator_Options.h:
+ * orbsvcs/ImplRepo_Service/Activator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.h:
+ * orbsvcs/ImplRepo_Service/Adapter_Activator.cpp:
+ * orbsvcs/ImplRepo_Service/Forwarder.h:
+ * orbsvcs/ImplRepo_Service/Forwarder.cpp:
+ * orbsvcs/ImplRepo_Service/INS_Locator.h:
+ * orbsvcs/ImplRepo_Service/INS_Locator.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Activator.idl:
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImR_Locator.idl:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.h:
+ * orbsvcs/ImplRepo_Service/ImR_Locator_i.cpp:
+ * orbsvcs/ImplRepo_Service/ImplRepo_Service.mpc:
+ * orbsvcs/ImplRepo_Service/Iterator.h:
+ * orbsvcs/ImplRepo_Service/Iterator.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_NT_Service.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.h:
+ * orbsvcs/ImplRepo_Service/Locator_Options.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.h:
+ * orbsvcs/ImplRepo_Service/Locator_Repository.cpp:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.h:
+ * orbsvcs/ImplRepo_Service/Locator_XMLHandler.cpp:
+ * orbsvcs/ImplRepo_Service/README.txt:
+ * orbsvcs/ImplRepo_Service/Server_Info.h:
+ * orbsvcs/ImplRepo_Service/Server_Info.cpp:
+ * orbsvcs/ImplRepo_Service/activator_idl_export.h:
+ * orbsvcs/ImplRepo_Service/locator_idl_export.h:
+ * orbsvcs/ImplRepo_Service/repository.xml:
+ * orbsvcs/ImplRepo_Service/tao_imr.cpp:
+ * orbsvcs/ImplRepo_Service/tao_imr_i.h:
+ * orbsvcs/ImplRepo_Service/tao_imr_i.cpp:
+
+ Refactored ImR to move most functionality from the activator into
+ the locator. All activator->locator and locator->activator interfaces
+ are moved to new idl files in this directory, thereby making PortableServer
+ smaller. The activator no longer has need for persistence since it's little
+ more than a process launcher now. The Activator has been rewritten to use
+ AMH, which allows the locator to block waiting for the servers to startup
+ without wasting thread resources or inducing stack overflow.
+
+ The locator now persists all activator and server information, and can use
+ any of the three persistence formats for this.
+
+ Added the StartLimit feature, wherein the ImR will try to start a server
+ up to StartLimit times before giving up. From the point of view of tao_imr, this
+ feature is called retry_count, which = start_limit - 1. The default is 0, or disabled.
+
+ Reintroduced the ping interval command line option for the Locator. If the server
+ has been pinged in the last N seconds, then it will be assumed to be still running.
+ This should cut down on some potential unnecessary traffic. The default is 500ms, and
+ 0 can be specified to disable the verification feature. Which is nice.
+
+ Fixed many miscellaneous bugs found while refactoring, and adding features.
+
+ However, there are some existing know problems. Specifically the INS_Locator no
+ longer seems to work, although it seems to return the same result as 1.3a before this
+ merge in which it was working fine. Maybe the merge will take care of the problem.
+ Also the persistent_ir test is not working. Could be related.
+
+ * orbsvcs/tests/ImplRepo/locked/run_test.pl:
+ * orbsvcs/tests/ImplRepo/run_test.pl:
+
+ Updated to reflect new/moved command line params.
+
+ * tao/PortableServer/ImplRepo.idl:
+ * tao/PortableServer/POA.cpp:
+ * tao/PortableServer/PortableServer.mpc:
+
+ Changed to use idl instead of pidl.
+
+ * utils/catior/catior.cpp:
+
+ Fixed bug with crash in incorrect use of isprint()
+
+ * orbsvcs/tests/ImplRepo/scale/client.conf:
+ * orbsvcs/tests/ImplRepo/scale/client.cpp:
+ * orbsvcs/tests/ImplRepo/scale/run_test.pl:
+ * orbsvcs/tests/ImplRepo/scale/scaletest.mpc:
+ * orbsvcs/tests/ImplRepo/scale/server.cpp:
+ * orbsvcs/tests/ImplRepo/scale/server_i.h:
+ * orbsvcs/tests/ImplRepo/scale/server_i.cpp:
+ * orbsvcs/tests/ImplRepo/scale/test.idl:
+
+ This new scalability test should help track down some remaining
+ flaws in the ImR. It was originally submitted by SoftComputer, but
+ has been extensively modified.
+
Tue Sep 14 17:12:41 2004 J.T. Conklin <jtc@acorntoolworks.com>
* orbsvcs/orbsvcs/Makefile.am:
diff --git a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
index b656dcbccf5..568c06d6216 100644
--- a/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
+++ b/TAO/orbsvcs/ImplRepo_Service/ImR_Activator_i.cpp
@@ -83,7 +83,8 @@ ImR_Activator_i::init_with_orb(CORBA::ORB_ptr orb, const Options& opts ACE_ENV_A
ACE_DEBUG((LM_DEBUG, "ImR Activator: Starting %s\n", name_.c_str()));
// initialize our process manager.
- ACE_Reactor *reactor = orb_->orb_core ()->reactor ();
+ // This requires a reactor that has signal handling.
+ ACE_Reactor *reactor = ACE_Reactor::instance ();
if (reactor != 0)
{
if (this->process_mgr_.open (ACE_Process_Manager::DEFAULT_SIZE, reactor) == -1)