Title: | DCE Product Information |
Notice: | Kit Info - See 2.*-4.* |
Moderator: | TUXEDO::MAZZAFERRO |
Created: | Fri Jun 26 1992 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 2269 |
Total number of notes: | 10003 |
We are using DCE 2.0A (Rev. 515) on Digital Unix 4.0A (Rev. 464). In our simple DCE test configuration there are three CDS server machines with the associated clearinghouses: - /.:/archix_ch (initial CDS master) - /.:/delta_ch (replica CDS server) - /.:/dagobert_ch (replica CDS server) The directory /.:/subsys/PATIS/inst is created and replicated (master replica is /.:/archix_ch). I use the following simplified (for easier understanding) tcl-script to setup/clean the CDS namespace: ###################### # begin of cds_cfg.dcp ########################## # # initialize CDS namespace # ########################## proc init {} { # create the master replicas of .../rpcex1/subsys subtree directory create /.:/subsys/PATIS/inst/rpcex1 directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts directory create /.:/subsys/PATIS/inst/rpcex1/subsys directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/subsys/MySystem directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/subsys/MySystem/MyClass directory synchronize $_p # create readonly replicas of .../rpcex1/subsys subtree in /.:/delta_ch directory create /.:/subsys/PATIS/inst/rpcex1 \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/subsys \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/subsys/MySystem \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/subsys/MySystem/MyClass \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p # create readonly replicas of .../rpcex1/subsys subtree in /.:/dagobert_ch # same as for /.:/delta_ch above (omitted here for simplification) ... # create the master replicas of .../rpcex1/hosts/archix subtree # in /.:/archix_ch directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix \ -clearinghouse /.:/archix_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys \ -clearinghouse /.:/archix_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem \ -clearinghouse /.:/archix_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem/ \ MyClass -clearinghouse /.:/archix_ch directory synchronize $_p # create readonly replica of .../rpcex1/hosts/archix subtree # in /.:/delta_ch directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem \ -replica -clearinghouse /.:/delta_ch directory synchronize $_p directory create /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem/ \ MyClass -replica -clearinghouse /.:/delta_ch directory synchronize $_p # create readonly replica of .../rpcex1/hosts/archix subtree # in /.:/dagobert_ch (same as for /.:/delta_ch, omitted) ... # create the master replicas of .../rpcex1/hosts/delta subtree # in /.:/delta_ch (same as for host archix in /.:/archix_ch, omitted) ... # create readonly replicas of .../rpcex1/hosts/delta subtree # in /.:/archix_ch and /.:/dagobert_ch # (same as for host archix in /.:/delta_ch and /.:/dagobert_ch, omitted) ... # create the master replicas of .../rpcex1/hosts/dagobert subtree # in /.:/dagobert_ch (same as for host archix in /.:/archix_ch, omitted) ... # create readonly replicas of .../rpcex1/hosts/dagobert subtree # in /.:/archix_ch and /.:/delta_ch # (same as for host archix in /.:/delta_ch and /.:/dagobert_ch, omitted) ... } ########################## # # cleanup CDS namespace # ########################## proc cleanup {} { # delete every directory (first the two replicas then the master) from # bottom up; # this is done by a recursive proc in the real procedure directory delete /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem/ \ MyClass -replica -clearinghouse /.:/delta_ch directory delete /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem/ \ MyClass -replica -clearinghouse /.:/dagobert_ch directory delete /.:/subsys/PATIS/inst/rpcex1/hosts/archix/subsys/MySystem/ \ MyClass directory synchronize $_p ... # and so forth; the master is automatically determined for each directory. # Until the last directory (root of rpcex1) directory delete /.:/subsys/PATIS/inst/rpcex1 \ -replica -clearinghouse /.:/delta_ch directory delete /.:/subsys/PATIS/inst/rpcex1 \ -replica -clearinghouse /.:/dagobert_ch directory delete /.:/subsys/PATIS/inst/rpcex1 directory synchronize $_p } #################### # end of cds_cfg.dcp In fact the CDS_Convergence of each master directory is set to low after it was created and before the parent directory will be skulked, e.g.: directory modify /.:/subsys/PATIS/inst/rpcex1 -change {CDS_Convergence low} When I test this script as follows: dcecp> source cds_cfg.dcp dcecp> init dcecp> cleanup all works fine. But yet another init ends up in a coredump of the CDS servers for /.:/delta_ch and /.:/dagobert_ch, just at the point where the first directory (master replica of /.:/subsys/PATIS/inst/rpcex1) was created and the parent directory should being skulked. I can reproduce this manually by: dcecp> dir create /.:/subsys/PATIS/inst/rpcex1 dcecp> dir synchronize /.:/subsys/PATIS/inst when I restart the CDS servers, too. Even dcesetup clean on the host delta and dagobert (and archix) doesn't help. When I reconfigure the cell (clobber all systems and reconfigure them), it only works for the first time again. BTW, you may wonder about the immediate skulk of the parent directory after the creation of each directory (master or replica), but without this I often (enough) got the error: Error: Requested entry not found when creating subdirectories later on. In fact the script never finished without the immediate skulk. Any ideas, helps or hints would be appreciated. Thanks in advance. Helmut
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
2264.1 | access to core dump and .checkpoint file? | TUXEDO::ZEE | There you go. | Tue May 27 1997 14:29 | 9 |
cdsd should be able to handle what you are doing, although it is not normal operating procedure to create subtrees in the namespace, delete them, and recreate them again and again. Could we get a core file and the various .checkpoint files (the ones that will crash on startup) ? FYI, to delete a subtree, you may want to look at the "cdscp delete subtree" command. --Roger | |||||
2264.2 | files available on TUXEDO | BHAJEE::dhcp-204-144-203.rto.dec.com::aigner | Helmut Aigner Patis Engineering NSIS Munich | Wed Jun 04 1997 13:41 | 46 |
Roger, I've created a compressed tar-file which contains the /opt/dcelocal/var/directory/cds subtree (incl. cdsd core file and .checkpoint files). This tar-file is called aigner_cdsd_dump.tar_Z and I've copied it (VMS copy) to TUXEDO:: . You have to move it to a UNIX machine and recreate the subtree: $ uncompress aigner_cdsd_dump.tar_Z $ tar -xvf aigner_cdsd_dump.tar We are using DCE 2.0a (Rev. 515) on Digital Unix 4.0a (Rev. 464). I hope you can find and fix the problem. > cdsd should be able to handle what you are doing, although it is > not normal operating procedure to create subtrees in the > namespace, delete them, and recreate them again and again. Of course, we won't create, delete, recreate, ... namespace subtrees in our final system. But we will probably have to reconfigure parts of the namespace - or we should be able to - without running in problems because of damaged CDS servers. Automatic namespace creation and reconfiguration (with scripts) is an important issue for our customer and the ones who have to maintain the final system. > FYI, to delete a subtree, you may want to look at the > "cdscp delete subtree" command. "dcecp> dir delete ... -tree" should do what you recommend. But this only works for non-replicated directories. If a subtree contains replicated directories, you can't delete the whole subtree. Of course, it would be great to have a command for explicitly deleting a directory subtree (replicated or not) within a certain clearinghouse, something like "dir delete [-replica] -tree -clearinghouse ...", or for deleting a directory tree with all directory replicas. Thanks in advance Helmut |