home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 29 Fixes_o
/
29-Fixes_o.zip
/
csd212.rme
< prev
next >
Wrap
Text File
|
1996-01-15
|
28KB
|
695 lines
# @(#) 1.4 src/buildcsd/README.CSD, som, som2.1
# 4/27/95 08:09:29 /27/95 19:04:23|
# 10H9767, 10H9769
# (C) COPYRIGHT International Business Machines Corp. 1992,1995
# All Rights Reserved
# Licensed Materials - Property of IBM
Instructions for using the CSD212 update for SOMobjects 2.1
====================================================================
To use this update you must have already installed SOMobjects on your
system. This update works for the Toolkit, Workstation, and Workgroup.
To begin the update you need to be in the SOMBASE directory.
YOU MUST ALSO ENSURE THAT THE "SOMBASE", "PATH", "LIBPATH", "SMINCLUDE",
ENVIRONMENT VARIABLES HAVE BEEN SET-UP ACCORDING TO THE SOMobjects 2.1
INSTALLATION INSTRUCTIONS.
DISK REQUIREMENTS:
=================
You must have 10MB of free disk space prior to installing this update.
Following the update there are some files that you can remove to reclaim
space.
Please ensure that you have AT LEAST 1MB free in the directory that
you are running this update AFTER you have downloaded and UNPACKED
the update program and file.
OS/2 Users:
==========
Change to the drive in which SOM is installed (e.g. C:)
D:\> C:
Change directory to %SOMBASE% (assume %SOMBASE% = "C:\SOM"):
C:\> cd %SOMBASE%
Download the csd files "csd212.ex@" and "csd212.os@" to the %SOMBASE%
directory. Before using the update you will need to unpack these files:
C:\SOM> unpack csd212.ex@
C:\SOM> unpack csd212.os@
You are now ready to run the update:
C:\SOM> csd212
NOTE:
=====
By default, the CSD will only overwrite files that are older than the ones
contained in the CSD data file.
If you want to force the overwrite, regardless of the dates then you
should type:
C:\SOM> csd212 -f
The update will do three main things:
1) Update any files that have changed since the last update.
2) Update the syslevel files.
3) Rebuild header files. (This will take most of the time.)
YOU MUST NOW REBOOT THE SYSTEM TO FINISH THE UPDATE!
Note: the update for this CSD does not update your CONFIG.SYS file like
earlier SOMobjects CSD's.
You may delete the following files after the update:
csd212.ex@
csd212.os@
csd212.exe
csd212.os2
---------------------- The update is finished. -----------------------------
AIX Users:
==========
Login as "root".
(Ensure that LIBPATH, PATH, and SMINCLUDE are still set-up according to
the SOMobjects 2.1 installation instructions after you have logged in
as "root".)
Change directory to $SOMBASE (assume $SOMBASE = "/usr/lpp/som"):
/#> cd $SOMBASE
FOR AIX 3.2.5
=============
Download the csd files "csd212.325.Z" and "csd212.aix.Z" to the $SOMBASE
directory. Before using the update you will need to uncompress these files:
/usr/lpp/som#> uncompress csd212.325.Z csd212.aix.Z
/usr/lpp/som#> chmod a+x csd212.325
You are now ready to run the update:
/usr/lpp/som#> csd212.325
*********************************************************************
FOR AIX 4.1.1
=============
Download the csd files "csd212.411.Z" and "csd212.aix.Z" to the $SOMBASE
directory. Before using the update you will need to uncompress these files:
/usr/lpp/som#> uncompress csd212.411.Z csd212.aix.Z
/usr/lpp/som#> chmod a+x csd212.411
You are now ready to run the update:
/usr/lpp/som#> csd212.411
*********************************************************************
NOTE:
=====
By default, the CSD will only overwrite files that are older than the ones
contained in the CSD data file.
If you want to force the overwrite, regardless of the dates then you
should type:
/usr/lpp/som#> csd212.325 -f
or
/usr/lpp/som#> csd212.411 -f
The update will do three main things:
1) Update any files that have changed since the last update.
2) Set the fix level for installp (for somk only).
3) Rebuild header files. (This will take most of the time.)
---------------------- The update is finished. -----------------------------
Interface Repository File Notes:
================================
* Interface Repository Files (IR Files):
This update includes two new IR Files in the "etc" directory:
"somnew.ir" and "som212.ir".
"somnew.ir" is a complete IR File replacement for the GA "som.ir"
"som212.ir" contains just the idl files that have changed since GA.
If you haven't changed the GA "som.ir" (this is the most likely case)
then you can replace it with "somnew.ir":
OS/2:
C:\> cd %SOMBASE%/etc
C:\%SOMBASE%\ETC> ren som.ir somir.ga
C:\%SOMBASE%\ETC> ren somnew.ir som.ir
AIX:
cd /usr/lpp/somtk/etc, or
/usr/lpp/somws/etc, or
/usr/lpp/somwg/etc
$ mv som.ir somir.ga
$ mv somnew.ir som.ir
If you have changed the GA "som.ir" then you can pickup the changes
by adding "som212.ir" into your SOMIR path, for example:
OS/2:
C> set SOMIR=%SOMBASE%\etc\som212.ir;%SOMBASE%\etc\som.ir;SOM.IR
AIX:
$ SOMIR="$SOMBASE/etc/som212.ir:$SOMBASE/etc/som.ir:./som.ir";
export SOMIR
Or, if you have the all of the ".idl" files available and the SOM Compiler
"sc", you can rebuild the IR file:
OS/2:
C> set SOMIR=%SOMBASE%\etc\som.ir
C> cd %SOMBASE%\include
C> sc -usir *.idl
AIX:
$ SOMIR="$SOMBASE/etc/som.ir"; export SOMIR
$ cd $SOMBASE/include
$ sc -usir *.idl
Fixes included in Update CSD211
=======================================
CSD211 - New distribution utility
Feature number: 10419
Note: The new distribution utility is provided as-is to assist
people who install distributed applications. It is NOT
to be considered part of any SOMobjects product and will
not be supported.
Implementation Repository Distribution
--------------------------------------
The Implementation Repository distribution utility has been written
to provide a means to distribute server and class information across
Implementation Repositories. Since the selected information can be
distributed to other Implementation Repositories, the Implementation
Repository no longer needs to be shared. With this utility,
information in the Implementation Repository can be grouped according
to selection identifiers. A distribution file can be created using
the selection identifiers to decide which information is to be
included. The distribution file can then be transported to other
hosts and the information can be applied to the other Implementation
Repositories.
The Implementation Repository distribution utility uses selection
identifiers to group the server and class information to be
distributed to other Implementation Repositories. A selection
identifier is a string, with a maximum of 49 bytes, which is used to
group server information to be distributed. (Note: on OS/2 and AIX,
selection identifiers are implemented as class associations in the
Implementation Repository. The selection identifiers will be preceded
with a "*" to denote that the class is really a selection identifier.)
The Implementation Repository Distribution utility is a command line
utility with four options: add selection identifier, remove selection
identifier, create distribution file, apply distribution file.
Add selection identifier
To add a selection identifier to a server in the Implementation
Repository, specify the "a" option, followed by the selection
identifier and then the alias name of the server. For example:
dstf "a" "Headquarters_1" "Headquarters"
associates the selection identifier "Headquarters_1" with the
server alias "Headquarters" in the Implementation Repository.
Remove selection identifier
To remove a selection identifier from a server in the
Implementation Repository, specify the "r" option, followed
by the selection identifier and then the alias name of the
server. For example:
dstf "r" "Headquarters_1" "Headquarters"
removes the association of selection identifier "Headquarters_1"
with the server alias "Headquarters" in the Implementation
Repository.
Create Distribution File
To create an Implementation Repository distribution file to be
distributed to other Implementation Repositories, specify the
"C" option, followed by the name of the file to be created and
a list of selection identifier to be included in the file.
For example:
dstf "C" "My_Company" "My_Company_Headquarters"
"My_Company_Branch1" "My_Company_Branch2"
creates a distribution file "My_Company" containing the server and
class information for all servers associated with the selection
identifiers "My_Company_Headquarters" "My_Company_Branch1"
"My_Company_Branch2".
A distribution file can also be created to contain all information
in an Implementation Repository by specifying "*ALL" for the
selection identifier. For example:
dstf "C" "All_Implrep" "*ALL"
creates a distribution file "All_Implrep" that contains all the
information in the Implementation Repository.
Apply Distribution File
To apply an Implementation Repository distribution file to the
Implementation Repositories, specify the "A" option, followed by
the name of the file to be applied, the apply option, and a list
of selection identifiers to be applied. There are 2 options that
can be used when applying a distribution file:
"10" Merge - Add any new server information in the distribution
file to the implementation repository. Update any
existing server with the information in the
distribution file.
"20" Replace - Remove any entries in the Implementation
Repository that are associated with the specified
selection identifier. Add the entries from the
distribution file to the Implementation Repository.
For example:
dstf "A" "My_Company" "10" "My_Company_Headquarters"
"My_Company_Branch1" "My_Company_Branch2"
applies the distribution file "My_Company" for all servers
associated with the selection identifiers "My_Company_Headquarters"
"My_Company_Branch1" "My_Company_Branch2". Any existing servers in
the Implementation Repository associated with the specified
selection identifiers will be updated using the information in the
distribution file. If a server associated with a selection
identifier does not exist in the distribution file, its information
in the Implementation Repository will not be changed.
dstf "A" "My_Company" "20" "My_Company_Headquarters"
"My_Company_Branch1" "My_Company_Branch2"
applies the distribution file "My_Company" for all servers
associated with the selection identifiers "My_Company_Headquarters"
"My_Company_Branch1" "My_Company_Branch2". Any existing servers in
the Implementation Repository associated with the specified
selection identifiers will be deleted and replaced with the entries
from the distribution file.
Restriction(s)
The distribution tool currently has the limitation that
a distribution file cannot be applied to a nonexistent
Implementation Repository. (There must be valid files
in the directory specified by SOMDDIR before attempting
to apply a distribution file.)
----------------------------------------------------------------------
CSD211 - New DSOM functions
(Defect 9772)
Two new DSOM functions have been added:
SOMD_YesORBfree is a companion to SOMD_NoORBfree.
It signifies that the application, which had previously
called SOMD_NoORBfree, now wishes to free ORB-allocated
memory using ORBfree rather than SOMFree.
SOMD_QueryORBfree allows an application to determine
whether SOMD_NoORBfree or SOMD_YesORBfree has been
called (whether an application should be freeing ORB-allocated
memory using ORBfree or SOMFree). It returns TRUE if ORBfree
should be used and FALSE if SOMFree should be used.
Notes regarding SOMD_NoORBfree/SOMD_YesORBfree and SOMD_QueryORBfree:
1. SOMD_NoORBfree and SOMD_YesORBfree affect global process state,
hence these functions must be used carefully by threaded applications
to avoid conflict.
2. Applications must be written to insure that the same mode of
memory management is in effect when memory is allocated as when it
is freed; otherwise, memory leaks will result. For example, if an
application calls SOMD_NoORBfree, makes a remote method call resulting
in some memory being allocated, calls SOMD_YesORBfree, then (because
SOMD_QueryORBfree now returns TRUE), calls ORBfree on that memory, the
memory will not be freed. Similarly, if an application calls
SOMD_YesORBfree, makes a remote call, calls SOMD_NoORBfree, then
(becuase SOMD_QueryORBfree now returns FALSE), uses SOMFree to free
the data structure, then although the data structure itself is freed,
the memory that DSOM uses to maintain information about the memory
(e.g., its TypeCode) will not be freed.
----------------------------------------------------------------------
CSD211 - Features
Features
--------
7359 - It's not a fatal error to delete an unregistered server
via regimpl - an error message will be produced only when
SOMDDEBUG is set
8011 - Allow servers to be designated nonstoppable - via a new
"-n {onooff}" option to regimpl. When a server is registered
as nonstoppable, neither the "dsom stop" command nor the
somdShutdownServer method can be used to terminate the server.
----------------------------------------------------------------------
CSD211 - Defects
Defects
-------
3256 The COM emitter adds invalid comments to the .c file
3406 The .xh compiler generates annoying messages
3561 Incorrect marshalling of TypeCodes in DSOM
6369 Fixes for problems in 2.1 Collection Classes
1. somf_TDictionary_somfKeyAtM and
somf_TDictionary_somfKeyAtMF get a "Segmentation fault
(core dumped)" if the value being passed is not in
the dictionary.
2. somf_TCollection_somfMember will delete objects
from the collection.
3. If somf_TDeque_somfTDequeInitD is called on a non-empty
TDeque, the objects from the second TDeque are added to
it.
4. somf_TPrimitiveLinkedList_somfRemove will core dump if
user tries to remove an object that does not exist in
the linked list.
5. somf_TSet_somfXorSS does not set the count correctly
under certain conditions.
6. somf_TSortedSequence_somfOccurrencesOf will core dump
if it is called on a TSortedSequence object that is
empty.
6466 problem with size of unions calculated in tcSize
6989 If somf_TSequence_somfCreateIterator is not overridden,
incorrect message will be displayed.
7206 Comment such as "// /_Fachtyp_/" causes exception when using
sc.
7223 Error message is not generated by the C and C++ emitters if
noself modifier is used for methods.
7290 The // comment at begin of IDL file causes incorrect error
message when running 'sc'.
7334 If the staticdata modifier is used for an attribute or
instance variable the instance data access macro is defined
incorrectly in the .ih.
7436 The pdl emitter still assumes that there is only a single
interface or module) per idl file, and emits duplicate
information into the pdl file.
7447 TypeCode_size & TypeCode_alignment not computed correctly on
AIX for structs containing doubles
7516 If the somfTPriorityQueue class is used, _somfInsert will
insert objects into the wrong order.
7779 emitih: BeginInitializer generated incorrectly
7879 SOM generated macro name '_value' conflicts with the '_value'
field of the CORBA standard type 'any'.
7921 DSOM does not marshall 'any' parameter with TypeCode tk_null
or tk_void
8046 sc -r option
8060 SOM Compiler problem - duplicate sequence type nodes.
8068 SOMD peer example for Windows has unneeded DSOMEventCallBack
and TimerEventCallBack
8076 The file produced by newemit (gen_emit.efc) does not handle
opening the emitfile correctly.
8161 If the source file is not in current directory, no PDL file
is emitted by the PDL Emitter and "The file cannot be found."
message is generated.
8187 Deadlock after invoking oneway method from a DSOM server
8218 DSOM does not correctly marshall an out struct containing a
NULL string
8219 Error in SOM compiler help message
8237 Ability to specify multithreaded server using pregimpl
(OS/2 only)
8339 In C++ binding, the .xh and .xih files are generated
differently between using "=" and ":". A coredump will
be generated if metaclass : ... is used.
8362 Error in the CTOI.CMD file when converting .CSC files to
.IDL files.
8396 Only the comment at the end of a union will be handled by
the emitter and the emitter framework. Comments within
the union are ignored.
8420 If object pointers are in the struct, only the first object
pointer is handled correctly by the .h compiler.
8503 Allow a DSOM client to continue communicating with a server
after the server goes down and comes back up
8556 -d option on sc
8615 SOM produces unfriendly error message "YOU LOSE BIGTIME"
when an iterator is used before calling somfFirst
8702 DSOM PERSIST_STORE error (AIX)
9218 regimpl problem writing to read-only file (regimpl terminates
with no error message unless SOMDDEBUG is set)
9306 Name clash between som and cset (identifier "version" in
somdtype.idl)
9463 Using delete operator with proxies
9571 If an overloaded initializer is declared with no additional
parameters, any initializers declared after it will not be
properly emitted in the .xh file.
9694 A class object is implicitely created each time the dll
is loaded and never freed.
9740 On OS/2 there is no way to have all classes traced as
described in the documentation (2.1 Users Guide, pg 10-9).
9772 How to know when SOMD_NoORBfree has been called. (A new
function, SOMD_QueryORBfree, has been added.)
9863 Having a large set of -I include paths generates an error
message even if emptyfile.idl is empty.
9876 When sommBeforeMethod returns FALSE, the primary method is
still invoked
----------------------------------------------------------------------
CSD211 - Duplicate or not reproducible defects
The following defects are either duplicates of fixed defects
or are not reproducible under the new level:
Defects
-------
2657 memory leaks found when using contents method
3387 _System calling convention.
5457 Possible Persistence Framework bugs
6015 Persistence Framework woe
6425 unknown SOMFree calls
7510 scopes, bugs and docs
7570 Name clashes
8500 InterfaceRepository, CSet++ HeapView Debugger and memory leak
8654 Variable syntax error in somenv.csh
8805 GPF on server when server started after an abnormal stop
8870 Before/After hook used with DSOM
8922 passthru behavior
9158 Change default for .xh emitter to be "-mnocfront" instead
of "-mcfront"
9864 somDestruct called more often than needed
----------------------------------------------------------------------
Fixes included in this Update CSD212
===========================================
----------------------------------------------------------------------
CSD212 - Compiler/Emitter Changes
1. The mapping for IDL interface typedefs has been fixed. The previous
mapping was virtually unusable in the case of C++, and very strange
in the case of (nonCORBA) C bindings. Because the fix can result in
the need to change source code, the CSD provides the original
behavior by default. To access the fix, use -mitdfix (for interface
typedef fix) on the sc command line when generating bindings.
Example of IDL containing an interface typedef:
#include <somobj.idl>
interface X : SOMObject {
typedef SOMObject MyObject;
...
};
2. The C++ emitters can now use C passthru statements. If -mpassh
is used on the sc command line and the xh emitter doesn't find a
C_xh passthru in the IDL, then the C_h passthru will be used. If
-mpassih is used on the sc command line and the xih emitter doesn't
find a C_xih passthru, then the C_ih passthru will be used.
----------------------------------------------------------------------
CSD212 - DSOM Changes
SOMDTHREADPEER Environment Variable
There is a new environment variable for DSOM that should be used for
the following situation:
There are two peer server processes, PeerA and PeerB, each running
as a multi-threaded DSOM server. PeerA executes a method, call it
PeerB_m1, on a PeerB object. The PeerB_m1 method calls a PeerA
method, call it PeerA_m2, a method call that executes at the PeerA
machine. The PeerA_m2 method calls a PeerB method, call it PeerB_m3,
a method call that executes at the PeerB machine.
PeerA Server PeerB Server
------------ ------------
(PeerA thread 1) - - - - - - - - -> method PeerB_m1
(PeerB thread 1)
o
o
method PeerA_m2 <- - - - - - - - - - - - - o
(PeerA thread 2)
o
o
o - - - - - - - - - - - - - -> method PeerB_m3
(PeerB thread 2)
At this point the two peers will deadlock. This is because
both PeerA thread 1 and thread 2 are awaiting a message from
PeerB, and the response from method PeerB_m3 will be received
by the wrong thread (PeerA thread 1).
There is an environment variable setting which can be used to
alleviate this situation. If SOMDTHREADPEER environment variable
is set (SOMDTHREADPEER=1), it will allow the two peers to complete
their method requests correctly.
On OS/2 there is no performance penalty involved with the use of
the SOMDTHREADPEER environment variable. On AIX there is a slight
penalty due to the necessity for AIX DSOM to poll its message queue.
DSOM - Interface Repository File Permissions
Please ensure that last (righmost) file in the SOMIR directory
hierarchy has write permissions set. In the event this is not
the case, DSOM will generate an IR NOT FOUND exception upon
startup.
----------------------------------------------------------------------
CSD212 - Defects
The following are Customer Reported Defects that have been fixed
Defects
-------
2845 Comment Processing
3026 compiler accepts oneway together with a raises()
5649 oneway method and SOM compiler
7590 Infinite Loop in somm__get_somRegisteredClasses
7987 noenv and noself on nonprocedure methods.
8413 somf_TSortedSequence / duplicate objects
8573 Wrong component information in syslevel files
8852 newemit messages.
8896 TSet Union Operation
8922 passthru behavior
9014 FW and Forward References
9191 somc problem?
9260 Troubles in C++ with an object array
9720 emitter bug and WWW4SOM problem
9793 Bad IR lookup
9938 Reintroduced nonstatic, wrong method being called?
10006 SOMMSingleInstance not working correctly
10057 Minor annoyance updating som.ir on OS/2
10059 DSOM BAD_TYPECODE error
10385 Bad TypeCode returned from OperationDef describe
10464 Windows SOM Compiler command buffer length test error
10539 Class methods not being overridden correctly
10610 SOMMSingle Instance metaclass and C++ binding
11167 csd2.11 breaks working application
11297 _describe_contents max_returned_objs problem
11315 sequenceElement Bug
11459 somdeallocate modifier -- need status of old problem
11559 Recovery of client app/machine when server goes down ..
11762 regimpl failure and SOMIR environment variable
11860 Compatibility problem with SOMobjects 2.1
11875 override somDefaultInit or somDestruct
11994 sompOpen -- inconsistencies between parent and child
12043 CSD 2.1.1, somDefaultConstAssign -- compiler error
12202 Sequence in emitter
12250 somSubstituteClass error w/ multiple inheritance
12279 Emitter FW
12783 DSOM problem when parameters are sequences of unions
----------------------------------------------------------------------
CSD212 - Duplicate or not reproducible Customer reported defects
The following are either duplicates of fixed defects or are not
reproducible on the new level:
Defects
-------
1229 IR Module Error
2390 IR info freed prematurely?
2993 Is it possible to run DSOM with collection classes?
3162 internal error in emitir
3547 IR questions Again
6628 Access Violation :: after upgrade 2.02-2.04 memory allocation
7177 Creating DSOM PrimitiveLinkedList with DSOM MLinkables
9220 object_owns_parameters
9406 Interface Repository: lookup_modifier corrupts input
9668 Comments in somcls.h
9839 SOM.IR Performance benchmark
10451 irdump problems
11576 SOMobjects for AIX
11886 memory leak at csd level 2.1.1
13140 Bad OperationDescriptions from OS/2 SOMobjects 2.1
13211 fopen error with sc -spdl
13284 AIX 4.1 and SOM 2.1 CSD install - broken
----------------------------------------------------------------------
CSD212 - Internally generated defects
The following are defects generated from internal sources
that have been fixed in this CSD level:
Defects
-------
3856 5854 6496 6954 7658 7870 8196 8447
8596 8609 8728 8831 9041 9043 9093 9385
9612 9652 9687 9849 9887 10073 10141 10162
10460 10518 10555 10811 10851 10882 10889 10912
10948 11099 11106 11122 11182 11191 11193 11257
11296 11313 11342 11355 11365 11369 11370 11390
11393 11412 11430 11432 11438 11493 11518 11519
11523 11550 11551 11594 11616 11629 11632 11656
11687 11724 11738 11740 11741 11760 11766 11782
11786 11787 11803 11809 11916 11946 11948 11986
11996 12003 12018 12028 12042 12095 12111 12120
12156 12175 12179 12225 12231 12263 12303 12325
12383 12429 12437 12452 12499 12506 12511 12591
12749 12817 12828 12831 12877 12921 12939 12947
12955 12991 13002 13026 13031 13036 13037 13040
13067 13069 13071 13075 13077 13090 13100 13122
13126 13128 13136 13137 13141 13142 13145 13152
13162 13210 13223 13267 13285 13307 13333 13355
13408 13460 13470 13474 13476 13480 13482 13489
13491 13502 13504 13522 13546 13548 13550 13554
13584 13598 13615 13626 13631 13633 13640 13657
13658 13667 13671 13679 13684 13685 13686 13688
13717 13722 13777 13815 13830 13846 13852 13858
13859 13905 14005 14009 14010 14012 14065 14066
14147 14270 14541 16329
----------------------------------------------------------------------