source: trunk/FACT++/dim/README_v19.txt@ 19713

Last change on this file since 19713 was 14575, checked in by tbretz, 12 years ago
Updated to v20r01.
File size: 31.0 KB
Line 
1
2 DIM version 19.39 Release Notes
3
4Notes 1 and 2 for Unix Users only
5NOTE 1: In order to "make" DIM two environment variables should be set:
6 OS = one of {HP-UX, AIX, OSF1, Solaris, SunOS, LynxOS, Linux, Darwin}
7 DIMDIR = the path name of DIM's top level directory
8 The user should then go to DIM's top level directory and do:
9 > source .setup
10 > gmake all
11 Or, if there is no support for C++ on the machine:
12 > gmake CPP=no all
13
14NOTE 2: The Name Server (Dns), DID, servers and clients (if running in
15 background) should be started whith the output redirected to a
16 logfile ex:
17 Dns </dev/null >& dns.log &
18
19NOTE 3: The Version Number service provided by servers is now set to 1939.
20
2104/10/2012
22Changes for version 19.39:
23 - Unfortunately Windows, unlike Linux, does not use LP64 convention for 64 bits,
24 i.e. the type long is a 32 bit variable (?!?!?!)
25 So created a dim_long type which can always hold a pointer
26
27
2809/08/2012
29Changes for version 19.38:
30 - The timeout used by clients and servers to try to reconnect to a DNS was supposed to be random,
31 to avoid all processes retrying at the same time, but it wasn't - fixed.
32
33
3427/06/2012
35Changes for version 19.37:
36 - DIM DNS crashed for servers with a task name bigger than 80 characters - Fixed.
37
38
3922/06/2012
40Changes for version 19.36:
41 - The internal "DIS_DNS/KILL_SERVERS" command can now be used to pass a user defined exit_code to
42 the servers. The servers will get this exit_code in their exit_handler.
43 Although the exit_code passed to the "DIS_DNS/KILL_SERVERS" command is an integer, only the lower
44 16 bits can be used, i.e. only these bits are passed to the servers.
45
46
4724/05/2012
48Changes for version 19.35:
49 - Fixed the DimInfo() default constructor, now if the default constructor is called, it doesn't cause the
50 destructor to crash anymore.
51 - Made available to DimInfo, DimStampedInfo, DimUpdatedInfo and DimCurrentInfo the method:
52 - void subscribe(char *name, void *nolink, int nolinksize, int time, DimInfoHandler *handler)
53 Like this the default constructor can be called and then this method called later to subscribe
54 whenever needed.
55 - The behaviour of a giving a null pointer and size 0 as "no link" parameters was not completely
56 defined. The user could get back either a null pointer or an "invalid" pointer in the callbacks.
57 This is now well-defined:
58 - If null pointer and size 0 is used at subscribe, the user will get null pointer and size 0 in the callback.
59 - If a negative size is passed at subscribe the callback is not called at all.
60
61
6203/05/2012
63Changes for version 19.34:
64 - Changed back to dna_write_nowait() the message that the server sends to the client when removing
65 a service. This was causing clients not to reconnect ever again when the server removed services.
66 (because the client would get the info much before the DNS, so it would keep trying to reconnect
67 and failing even though the service or even the server didn't exist anymore, without asking the DNS)
68 - Changed the client in order to avoid the behaviour above, i.e. if sending the service request fails it
69 asks the DNS again.
70
71
7223/04/2012
73Changes for version 19.33:
74 - A bug was introduced in v19r30. When trying to retry immediately, a dtq_start_timer(0)
75 was used (like for dna_write). This is not possible because the callback is not protected
76 by a DIM lock. Fixed. (in v19r32)
77 - Small tidy up in dic.c and protecting the move_to_xxx functions.
78 - When a server received an unsubscribe from the last subscribed service of a client it was closing the
79 connection to the client, this is not good because there could be commands being sent. In any case
80 it should be up to the client to close the connection - Fixed.
81 - dim_send_command now accepts a "-i" argument to send integer data (default is string)
82
83
8430/03/2012
85Changes for version 19.31:
86 - changed dna_write to dna_write_nowait for servers when removing a service and for clients
87 when releasing and subscribing to a service. Dna_write cannot be used for the same connection
88 as dna_write_nowait as it will mingle the packets.
89 - Removed more compiler warnings.
90
91
9214/03/2012
93Changes for version 19.30:
94 - Sometimes when trying to open a connection to a server the client could backoff for too
95 long (10 seconds), now it will retry immediately and then at increasing intervals.
96 - dim_stop() would sometimes not properly stop all threads if a new connection was received
97 in the mean time.
98 - The DimServerDns destructor could crash, fixed.
99 - Removed some compiler warnings about variables set but not used.
100 - Two new functions available:
101 - dim_set_listen_backlog(int size)
102 - int dim_get_listen_backlog()
103 - The DNS will set the listen_backlog to 1024 at startup, but the OS will truncate it to
104 a maximum limit (available in /proc/sys/net/core/somaxconn, linux default=128),
105 while for servers the constant SOMAXCONN is used.
106
107
10806/02/2012
109Changes for version 19.28:
110 - Added more log messages when a "Write Timeout" occurs to know where it originated.
111 - A server could sometimes not release the connection in case of a "Write Timeout", and
112 then keep on timing out for each message on this connection - fixed.
113
114
11519/01/2012
116Changes for version 19.27:
117 - Updated the DIM Makefiles for MacOSX (Darwin)
118 - Added New possibilities to change DIM timeouts:
119 - 2 New Environment variables:
120 - DIM_WRITE_TMOUT (default: 5)
121 - DIM_KEEPALIVE_TMOUT (default: 15)
122 - Same functionality as the functions:
123 - dim_set_write_timeout(int secs)
124 - int dim_get_write_timeout()
125 - dim_set_keepalive_timeout(int secs) //new
126 - int dim_get_keepalive_timeout() //new
127 - The functions have precedence over the environment variables.
128 - The server per client exit_handler functionality
129 (provided by dis_add_client_exit_handler()/dis_set_client_exit_handler())
130 wan not always working correctly (in case of write timeouts) - fixed.
131 - Changed the reporting of "Write Tiemout":
132 - Used to report only:
133 - "ERROR: Write Timeout, disconnecting from..."
134 - Now reports:
135 - "WARNING: Write Timeout, writing to ..."
136 - If it disconnects: "ERROR: Write Timeout, disconnecting from ..."
137 - If it reconnects later: "INFO: Re-connected to ..."
138
139
14014/09/2011
141Changes for version 19.26:
142 - In the notes for version 19.08 there is the following:
143 - Since version v18r4 where dim_wait() was modified, dim_wait could hang in windows if
144 the wake_up event was triggered before dim_wait was called. Could affect smi++. Fixed.
145 - Amasingly enough this seems also to be the case for Linux, dim_wait could hang until there
146 was some new DIM activity, normally some timer firing... Fixed.
147 - The Linux DID now accepts an extra parameter: -dns=<dns_node_name>
148
14901/09/2011
150Changes for version 19.25:
151 - When a Client was releasing a service "at the same time" as the server was deleting the service,
152 The Connection could be released by mistake - fixed.
153 - The SERVICE_LIST service could be updated with an empty string if there were two consecutive
154 dis_start_serving() - fixed.
155
156
15708/08/2011
158Changes for version 19.24:
159 - The funtion DimInfo::getFormat() never return the correct format of a service, if the first time
160 it was called, the service was not available, i.e. when called inside a "no_link" callback - Fixed.
161 - Deleting the last service of a server or stopping a server could generate "Invalid Service Id"
162 messages from the service that updates DID - Fixed.
163
164
16515/07/2011
166Changes for version 19.23:
167 - The new functions:
168 int DimClient::inCallback()
169 int DimServer::inCallback()
170 Can be used to find out if the function is being called in the context of a DIM callback
171 handler (they return 1 if yes, 0 if no).
172 - There was no way to "remove" an errorHandler or exitHandler in C++.
173 Now the following functions accept 0 as parameter:
174 DimClient::addErrorHandler(0)
175 DimServer::addErrorHandler(0)
176 DimServer::addExitHandler(0)
177 DimServer::addClientExitHandler(0)
178 In order to remove them.
179 - The Windows Visual Studio Manifest file distributed since version v19r19 was wrong, so the latest
180 DIM versions did not work on Windows machines without Visual Studio 8 installed - Fixed.
181
182
18321/06/2011
184Changes for version 19.22:
185 - DIM servers would hang when tring to exit due to "Services already declared", if the user
186 exitHandler() didn't directly call exit (instead tried to exit later in the main program).
187 Fixed.
188 - Servers accept now also 'B' or 'V' as format, they are both equivalent to 'C'.
189 - In Linux when a server printed "Write timeout, disconecting from XXX", it didn't always
190 disconnect properly, so the client would not always reconnect afterwards. Fixed.
191
192
19331/05/2011
194Changes for version 19.21:
195 - Fixed a bug in DimRpcInfo: the timer for the timeout was started too late and sometimes the
196 RPC data was received in the meantime, so the timer was never stopped.
197
198
19904/05/2011
200Changes for version 19.20:
201 - Fixed a bug added in v19r18: The <server_name>/SERVICE_LIST was no longer reporting correctly
202 the disappearence of services (by a "-<service_name>" ). Fixed.
203
204
20527/04/2011
206Changes for version 19.19:
207 - Fixed a very very old (horrible) bug in dis.c and dns.c: there was a hardwired malloc(8),
208 which was only ok for 32 bit machines. It's amazing this didn't bring more trouble...
209
210
21107/04/2011
212Changes for version 19.18:
213 - The standard server service <server_name>/SERVICE_LIST had problems reporting the correct
214 information when used by several clients in paralel - fixed.
215
216
21711/03/2011
218Changes for version 19.17:
219 - The TCPIP "listen" backlog for a server was increased for all servers (including the DNS)
220 from 16 to the constant SOMAXCONN (128 on Linux at the moment, 200 on Windows ?)
221 - After a "fork" the DIM initialization sequence guided by semaphores was not correctly
222 handled, this made the forked children hang and not respond to DIM anymore - fixed.
223
224
22523/02/2011
226Changes for version 19.16:
227 - DimServer::stop() did not correctly clear the ServerName - fixed.
228 - The Linux DID now prints the DNS it is connected to in the title bar.
229
230
23120/12/2010
232Changes for version 19.15:
233 - Still fixing dis_stop_serving():
234 - The DNS sometimes gets a remove service message from a server, after the server has
235 closed the connection, this was not handled properly - fixed.
236 - Fixed yet another detail (variable not cleared) in the thread handling at dis_stop_serving().
237 - dtq.c now clears all timer_queues at dis_stop_serving()
238 - Added some protections in case of closed connections.
239
240
24110/12/2010
242Changes for version 19.14:
243 - Still fixing dis_stop_serving():
244 - Adedd pthread_join in linux to wait for threads to die
245 - the following dis_start_serving() would not reconnect to the DNS if the DNS connection
246 was pending (i.e. the DNS was stopped or restarted)
247
248
24906/12/2010
250Changes for version 19.13:
251 - Fixed a few compiler warnings in dis.c
252 - Added #ifndef PXI around some Windows setPriority calls
253 - dis_stop_serving() did not completely clean-up DIM so that another dis_start_serving()
254 could be done properly after for example a "fork()". Fixed.
255
256
25720/09/2010
258Changes for version 19.12:
259 - Fixed a bug added when removing warnings in v19r10 (dis.c and dns.c).
260
261
26207/06/2010
263Changes for version 19.11:
264 - Added some protections in update_service() in order to try to solve a DIP issue.
265 (related to very frequent updates of the same service in different threads)
266 - Added the possibility of defining timeouts for:
267 - DimBrowser::getServices
268 - DimBrowser::getServers
269 - DimBrowser::getServerServices
270 - DimBrowser::getServerClients
271 - Added the possibility of retrieving the time a command arrived:
272 - int dis_get_timestamp(int service_id, int *secs, int *millisecs) in C
273 - int DimCommand::getTimestamp() and int DimCommand::getTimestampMillisecs() in C++
274 - Added a "const" keyword to the "char *format" parameter in the constructors of
275 - DimService and DimCommand
276 - Added a call DimCommand::hasNext(), can be used when commands are queued.
277 - Fixed a memory leak when using DimService::setData and then dynamically deleting the
278 DimService
279
280
28117/02/2010
282Changes for version 19.10:
283 - Fixed a bug in the DNS related to the latest change (browsing for a single service name)
284 The DNS could crash when killing a server.
285 - Removed some compilation warnings
286
287
28804/01/2010
289Changes for version 19.09:
290 - Created two new functions: dis_set_debug_on() and dis_set_debug_off(), these
291 enable or disable printing a message per service update
292 - Tried to protect against:
293 - a service being deleted from the server while it is being updated
294 - a client unsubscribing from a service while it is being updated.
295 - Optimized the DNS when browsing for a service search pattern without wildcards
296 (i.e. browsing for a single service name)
297
298
29913/11/2009
300Changes for version 19.08:
301 - Since version v18r4 where dim_wait() was modified, dim_wait could hang in windows if
302 the wake_up event was triggered before dim_wait was called. Could affect smi++.
303 Fixed.
304 - Fixed a compilation bug in dis.c that affected some platforms.
305
306
30730/10/2009
308Changes for version 19.07:
309 - Some more bugs related to being able to publish to more that one DNS fixed.
310
311
31228/10/2009
313Changes for version 19.06:
314 - When opening DNS connections, when the DNS is not there, from a process that is at the
315 same time a client and a server only one pending connection was used now two separate
316 ones are created.
317 - Tried to fix a few more problems related to dis_stop_serving...
318
319
32026/10/2009
321Changes for version 19.05:
322 - dis_stop_serving had stopped working in version 19.4. So all servers that undeclared
323 all services and then tried to re-declare new ones would fail (corrupted server name).
324 Affected in particular the DimBridge
325
326
32727/08/2009
328Changes for version 19.04:
329 - Added the following functions:
330 Server part:
331 C - dis_get_n_clients(int service_id)
332 C++ - int DimService::getNClients()
333 Client part (C++ only):
334 DimClient::setNoDataCopy()
335 This will prevent any data copy in the client and the user should make
336 sure that the data received from DIM is not used outside the callback
337 in order to benefir from this feature.
338 - Fixed the Java DIM Jar file, it was wrong in the previous version.
339
340
34131/07/2009
342Changes for version 19.03:
343 - Removed some more compilation warnings.
344 - Fixed a bug in the DNS. The mechanism for retrieving the "SERVER_LIST" when
345 some server names were longer that 35 characters was very slow.
346
347
34806/07/2009
349Changes for version 19.02:
350 - Fixed a bug in the server part handling of RPCs, it created a memory leak.
351 It was using a separate thread to handle timeouts and there is no safe way to
352 kill a thread from outside. Fixed.
353 - the function dim_stop_thread() is now obsolete.
354 - Added the possibility to change the send and receive buffer sizes:
355 - int dim_set_write_buffer_size(int size)
356 - int dim_get_write_buffer_size()
357 - int dim_set_read_buffer_size(int size)
358 - int dim_get_read_buffer_size()
359 The default (and minimum) is 16384 bytes.
360 These calls should be done before any other DIM calls.
361 - Fixed a bug in the Java DimBrowser class (the format was not returned correctly)
362
36304/05/2009
364Changes for version 19.01:
365 - A server can now publish to more than one DNS.
366 To use an extra DNS:
367 - in "C":
368 long dnsid;
369 char extra_dns[128];
370 ...
371 dim_get_env_var("EXTRA_DNS_NODE", extra_dns, sizeof(extra_dns));
372 dnsid = dis_add_dns(extra_dns,0);
373 sprintf(name1,"NewService%d",i);
374 dis_add_service_dns(dnsid, name1, "I", &NewData, sizeof(NewData),
375 (void *)0, 0 );
376 dis_start_serving_dns(dnsid, "xx_new");
377
378 - in C++:
379 DimServerDns *newDns;
380 char *extraDns = 0;
381 DimService *new_servint;
382 ...
383 extraDns = DimUtil::getEnvVar("EXTRA_DNS_NODE");
384 if(extraDns)
385 newDns = new DimServerDns(extraDns, 0, "new_TEST");
386 ...
387 if(extraDns)
388 new_servint = new DimService(newDns, "new_TEST/INTVAL",ival);
389
390 - Removed all warnings from DIM sources so that it can be compiled with -Wall -Wextra on Linux
391 - Changed the makefiles so that the default on Linux is now 64 bits.
392 - The flag 32BITS=yes can be added in order to generate 32 bit code
393
394
39526/02/2009
396Changes for version 18.05:
397 - Made the callback for "DIS_DNS/SERVER_LIST" uninterruptible, so that two clients subscribing
398 would not get mixed up answers.
399 - The same for "<server>/SERVICE_LIST"
400 - Tryied to fix a DNS crash, introduced in v18r4 by releasing the connection when "informing clients".
401 - removed some "//" comments in "C"
402
403
40420/02/2009
405Changes for version 18.04:
406 - Changed the dim_wait() mechanism, so that it works for several threads in parallel:
407 - On Linux it was based on POSIX semaphores now it is based on POSIX "condition
408 variables"
409 - On Windows it was based on "Auto Reset Events" now it uses "Manual Resel "Events"
410 - The DNS should now correctly update the "DIS_DNS/SERVER_LIST" service. It used to report
411 a new server, even when the services already existed and the server was killed by the DNS.
412 (And never report it killed). It also didn't report correctly when a server went out of "ERROR"
413 (this is reported as a "+" as for a new server).
414
415
41605/02/2009
417Changes for version 18.03:
418 - The list of registered services in a server could get corrupted in some rare cases
419 making the server crash - fixed.
420 - If the DNS couldn't talk to a client it could sometimes hang - fixed.
421 - Java client modifications:
422 - DimUpdatedInfo was not working correctly - fixed in dim_jni.c.
423 - Implemented DimRpcInfo
424 - Changed the DimBroser class to use DimRpcInfo.
425 - Added a jdim.jar file in the jdim/classes directory of the DIM distribution
426
427
42815/01/2009
429Changes for version 18.02:
430 - Added the following functions:
431 - C++ Client
432 - int DimClient.getServerPid()
433 - Java Client
434 - int DimClient.getServerPid()
435 - String[] DimBrowser.getServers()
436 - String DimBrowser.getServerNode(String server)
437 - int DimBrowser.getServerPid(String server)
438
439
44009/01/2009
441Changes for version 18.01:
442 - Added in the distribution the Visual Studio 8 dlls and manifest. Otherwise
443 it would not work on most PCs.
444
445
44603/12/2008
447Changes for version 18.00:
448 - The Windows execulables and libraries are now built using Visual Studio 8
449 - Some changes added by GSI mainly in the Java Native Interface
450
451
45206/11/2008
453Changes for version 17.12:
454 - Client functionality:
455 - Added a new function dic_stop(), to close anything related to DIM
456 for a client
457 - Added the function dic_get_server_pid(). Similar to dic_get_server().
458 Can be executed in a callback to retrieve the pid of the current server
459 - DimBrowser Class:
460 - DimBrowser::getServices() used to create and destroy the DimRpc connection
461 to the Dns every time it was called. This was heavy if called in a loop.
462 Now the connection is maintained until the DimBrowser itself is destroyed.
463 - A new method DimBrowser::getNextServer(char *&server, char *&node, int *pid)
464 has been created. similar to the previous one but returns also the server pid.
465 - DNS
466 - The DNS was still doing some blocking write calls to servers or clients.
467 Now all write calls have a timeout and can not block forever.
468 - Linux DID
469 - The "Subscribe" button was subscribing to services with update rate of 10 seconds.
470 This was misleading, the users could think the server was calling update_service
471 when it wasn't.
472 Now there are two Subscribe buttons ("on change" or "Update rate of 10 seconds").
473 - DimDridge
474 - Accepts an extra flag "-copy" which provokes an internal copy of the data.
475
476
47708/09/2008
478Changes for version 17.11:
479 - Some DIM Processes, servers or clients could enter a loop taking 100 % CPU
480 time in some rare occasions, fixed.
481 - Added some protections when removing services in the DimBridge.
482
483
48430/08/2008
485Changes for version 17.10:
486 - Some DIM Processes, servers or clients would not reconnect when the DNS was
487 restarted. Fixed two cause:
488 - Some processes in Linux were stuck reading from the DNS socket
489 - Some others "forgot" to set a timer under very special conditions
490 - Changed some of the DNS debug messages to be more explicit.
491
492
49321/07/2008
494Changes for version 17.09:
495 - DIM error messages were not being flushed when the output was redirected
496 to a logfile, fixed.
497
498
49918/07/2008
500Changes for version 17.08:
501 - Sometimes a server or a client could do a read on a sockect that had just
502 been closed which left them hanging forever - fixed.
503
504
50501/07/2008
506Changes for version 17.07:
507 - The DimTimer was sometimes not started when the constructor was called
508 with a time argument.
509 - Clients could not connect to more than 1024 servers - fixed.
510 (if the machine allows more than 1024 connections)
511
512
51330/06/2008
514Changes for version 17.06:
515 - Corrected the makefile for Darwin, now the number of accepted connections is
516 increased to 8192 only for Linux.
517 - Fixed a bug in the DimTimer, it used to accept to be re-started, but then crashed
518 at destruction time if not stopped the same number of times. Now it can not be
519 re-started.
520 - The Dns used to ask servers to re-register at regular intervals when they were not
521 sending their watchdog messages (i.e. they were in "ERROR", red in DID). Now the
522 DNS only asks once (unless they answer). This could cause the DNS to hang if
523 servers were in ERROR for a long time.
524 - The Dns now accepts a command line parameter: -d to print debug messages.
525 - The clients were not handling properly the case when they could contact the DNS
526 but then they could not contact the server that the DNS gave them (either because
527 of a firewall or because the server run on an inaccessible network). In this case
528 the clients would timeout trying to contact the server for each service and kept
529 asking the DNS the server coordinates over and over again. Now the clients keep
530 a list on unreacheable servers, so they don't try to contact the server for each
531 service and only ask the DNS again with an increasing interval that goes from 10
532 seconds to 2 minutes maximum.
533 - The server now issues an error message if the format string is too long.
534 - Linux DID
535 - Removed the command "Kill ALL Servers", it was too dangerous
536 - Now the list of nodes in "View Servers by Node" is in alphabetical order and
537 in lowercase.
538
539
54030/04/2008
541Changes for version 17.05:
542 - In Linux in some cases a SIGPIPE was generated. Normally the DIM library sets
543 the behaviour of SIGPIPE to ignored, but if another library or main program
544 changes the SIGPIPE behaviour, then the application could exit when the SIGPIPE
545 was generated. Fixed - on Linux now the function send with flag MSG_NOSIGNAL
546 is used in oder to avoid generating SIGPIPE.
547
548
549
5504/04/2008
551Changes for version 17.04:
552 - Sometimes processes (servers or clients) would hang when the DNS was restarted.
553 This was due to a strange (Windows?) feature, by which a connect could succeed
554 after a connection was closed (and reported) on the other side. Fixed.
555
556
557
55827/03/2008
559Changes for version 17.03:
560 - Can now make DID for 64 bits by making DIM using:
561 gmake X64=yes all
562 - Increased the size of the Hash tables for the servers and the DNS.
563
564
565
56620/02/2008
567Changes for version 17.02:
568 - Fixed the Java DimTimer - stop() didn't work
569 Required changing dim_jni.c as well as the java part
570 - Fixed DIM for Darwin - had stopped working
571
572
573
57420/01/2008
575Changes for version 17.01:
576 - The Java API now works on 64 bit machines, Thanks to Joern Adamczewski.
577 Please use:
578 gmake JDIM=yes all
579 - Linux executables are now compiled/linked on slc4 (32 bits).
580 - Big changes in the DimRpcs both client and server part. Tere were bugs
581 related to the handling of timeouts.
582 Unfortunatelly all applications using RPCs need to be re-linked.
583
584
585
586-----------------------------------------------------------------------------------------
587Previous version history:
588
58907/12/2007
590Changes for version 16.14:
591 - Now by default All DIM processes are ready to accept up to 8192 connections, both
592 in Linux and Windows. Although in Linux for this to be effective the machine system
593 limits must allow more than 1024 descriptors/open files per process.
594 - Fixed a little memory leak in tokenstring.cxx
595 - And a little compilation bug for some platforms in tcpip.c
596
597
59815/05/2007
599Changes for version 16.13:
600 - If DIM_HOST_NODE is defined when starting up a server, a DIM client will now try
601 two network interfaces in order to talk to that server and only give up if they both
602 fail. First it will try the ip name or ip address specified by the server using
603 DIM_HOST_NODE, if that fails it will try the ip address of the default interface
604 retrieved by the server using gethostname (and gethostbyname).
605 The changes basically affect the case in which the DIM_HOST_NODE given to the servers
606 is specified as IP address instad of an IP name. Otherwise this mechanism was already
607 working.
608
609
6103/05/2007
611Changes for version 16.12:
612 - The Java version did not exit properly when main() terminated - fixed.
613
614
61525/04/2007
616Changes for version 16.11:
617 - On Linux the timeout to detect a lost connections (unplugged ethernet cable
618 or machine reboot) was too long, around 15 minutes - Fixed.
619 On Linux the KEEPALIVE feature is now used instead of a regular socket write,
620 all other platforms should work as before.
621
622
62321/02/2007
624Changes for version 16.10:
625 - Found a bug in dis_stop_serving: one socket connection was not closed - fixed.
626 - Implemented a new environment variable for the DNS: DIM_DNS_ACCEPTED_NODES
627 Can receive a list on nodes or domains separated by commas.
628 If the DNS receives a connection from a node not in this list, it will
629 reject it and kill the server or client requesting it.
630 - Fixed some C++ warnings.
631
632
63319/01/2007
634Changes for version 16.9:
635 - The modifications done in version 16.8 have introduced a bug:
636 - DIM servers would not behave properly (exit) when receiving a kill command
637 from the DNS (for duplicated services, not allowed host names or manual "kill")
638 This is now fixed.
639
640
64130/10/2006
642Changes for version 16.8:
643 - Modified dis_stop_serving() and DimServer::stop() to completely stop DIM:
644 - Stop also the DIM threads.
645 - Release all allocated memory
646 - Allow a different port number when re-starting.
647
648
64911/07/2006
650Changes for version 16.7:
651 - Prepared for increasing the number of open connections per process
652 (On Linux still requires changing some parameters and recompiling the Dns)
653 - Fixed one error and several warnings for gcc 4.
654
655
65611/05/2006
657Changes for version 16.6:
658 - Sometimes a server or client would crash while exiting if the DNS was not running.
659 Fixed.
660 - Fixed the reporting of some ERROR messages on Windows (used to report error "0")
661 - Allowed dim_send_command to receive instead of -dns <node_name>
662 -dns <node_name>[:<port_number>]
663
664
66501/05/2006
666Changes for version 16.5:
667 - Big Spring Cleanup. Removed most warnings. Can now be compiled on
668 Windows with Warning Level 3 and on Linux with -Wall
669 (still not working for -ansi -pedantic...)
670 - When trying to access a server in a different network (i.e. not reacheable)
671 a client (for example DID) would take very very long to timeout - fixed.
672 - Added two new sets of functions that allow setting the DIM_DNS_NODE separately
673 for a server and a client in the same process:
674 - int dis_set_dns_node(char *node)
675 - int dis_get_dns_node(char *node)
676 - int dis_set_dns_port(int port)
677 - int dis_get_dns_port()
678
679 - int dic_set_dns_node(char *node)
680 - int dic_get_dns_node(char *node)
681 - int dic_set_dns_port(int port)
682 - int dic_get_dns_port()
683 These routines should be used instead of the equivalent ones starting with "dim_"
684 since these set the same DIM_DNS_NODE/port for both Server and client parts of a
685 process.
686 - Adapted the C++ equivalents (DimClient::setDnsNode, etc. and DimServer::setDnsNode,
687 etc.) to use the new routines, so they are now independent.
688 Adapted also the Java equivalents.
689 - Fixed DimBridge to use the new routines.
690 - Fixed a bug in DID that made it crash sometimes at startup (and also when the DNS
691 restarted)!
692 - Found some very interesting features of DIM:
693 - In a node with two ethernet interfaces (so connected to two networks):
694 - The DNS will answer to servers and client on both networks, only its server
695 part - DIS_DNS (the one that answers to DID and DimBrowser requests) would
696 in principle answer only to one of the networks (in principle the default
697 interface* but can be changed by setting the environment variable "DIM_HOST_NODE").
698 - But, in fact, if the DNS or any server is started with the environment variable
699 DIM_HOST_NODE set to the interface that is not the default* one. Than both the
700 DNS (including the server part) and the DIM servers will be accessible from both
701 networks. For example DID will work fine on both networks.
702 * The command "hostname" will return the name of the default network interface.
703
704 Note: As a result of inserting new functions the DIM shared library entry points have
705 changed, so all DIM Servers/Clients should be relinked (in particular in Linux).
706
707
70820/04/2006
709Changes for version 16.4:
710 - Optimized the DNS for providing the list or running servers dynamically
711 by subscribing to the service "DIS_DNS/SERVER_LIST"
712
713
71407/04/2006
715Changes for version 16.3:
716 - Upgraded to work on LynxOS Version 4.
717 - Updated makefile for INTEL platform
718 - Updated some ifdefs based on the existence of __Lynx__
719
720
72110/03/2006
722Changes for version 16.2:
723 - Increased the listen queue. To avoid "Connection Refused" messages from servers
724 or from the DNS.
725
726
72728/02/2006
728Changes for version 16.1:
729 - Fixed the NO_THREADS option for LINUX, it had stopped working.
730 - DimInfo::getData() could return an invalid pointer if called before connecting
731 to the server (or discovering the server did not exist). Fixed
732 (it now returns 0 in this case).
733
734
73509/11/2005
736Changes for version 16.0:
737 - Consolidated the new timer handling mechanism, should be much more precise.
738 - Fixed the RPC handling. Used to be based on timming assumptions.
739 Now uses a safe protocol to make sure the server is connected before sending
740 an RPC request.
741 - Included in the distribution some performance measurements and a benchmark
742 server and client. Sources in src/benchmark executables in /bin for windows
743 and /linux for linux.
744 Usage:
745 benchServer <message_size_in_bytes> <number_of_services>
746 benchClient
747 benchClient will run for a while and print the measurement results.
748
749Please check the Manual for more information at:
750 http://www.cern.ch/dim
Note: See TracBrowser for help on using the repository browser.