Skip to content

Commit 09cbbd7

Browse files
author
Gerd Behrmann
committed
dcap, gridftp: Do not export child cells as well known
DCAP and FTP doors instantiate a child cell per connection. The child cells are passed the same cell arguments as the parent. Since by default we export all door cell names as well known (using the -export option), this means child cells are exported too. Exporting the child cell names may sometimes be convenient in the admin shell, however the frequent addition and removal of a well known cell causes a large number of routing manager updates to be passed between domains. In the past, the large number of short lived well known cell names has been a problem for some broker schemes. Eg the reason wy we do not simply create a JMS queue per well known cell is that many brokers treat queues as expensive objects and do not expect thousands to be created and destroyed every minute. To the admin the only effect of this change is that the complete cell address needs to be provided when cd'ing into a child cell of a DCAP or FTP door. Target: trunk Require-book: yes Require-notes: yes Acked-by: Paul Millar <paul.millar@desy.de> Patch: http://rb.dcache.org/r/5126/
1 parent 62e8541 commit 09cbbd7

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

modules/cells/src/main/java/dmg/cells/services/login/LoginManager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public class LoginManager
3232

3333
private final CellNucleus _nucleus ;
3434
private final Args _args ;
35+
private final Args _childArgs ;
3536
private final ListenThread _listenThread ;
3637
private int _connectionDeniedCounter;
3738
private String _locationManager;
@@ -117,6 +118,8 @@ public LoginManager( String name , String argString ) throws Exception {
117118
" [args givenToLoginClass]");
118119
}
119120

121+
_childArgs = new Args(argString.replaceFirst("(^|\\s)-export($|\\s)", ""));
122+
120123
_protocol = args.getOpt("prot") ;
121124
checkProtocol();
122125
_log.info( "Using Protocol : {}",_protocol ) ;
@@ -996,7 +999,7 @@ public void run(){
996999
args = new Object[3] ;
9971000
args[0] = getCellName()+"-"+userName+"*" ;
9981001
args[1] = engine ;
999-
args[2] = new Args(getArgs());
1002+
args[2] = new Args(_childArgs);
10001003
}
10011004

10021005
Object cell = _loginConstructor.newInstance( args ) ;

0 commit comments

Comments
 (0)