Borland®
Shop
Products Downloads Services Support Partners News & Events Company Community
Delphi
Documentation
Support

Additional Resources
Technology Partners
Books
Community

 DELPHI DEVELOPER SUPPORT

Delphi 4 fixes and known issues
CORBA SECTION

Areas of concentration under: corba


Area: corba\core technology

Reference Number: 1575 (Published: 10/20/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/15/98
Severity: Serious
Type: Minor Functionality Failure

Problem:

ORBPAS.dll has no VERSION info.   This is 
important because the dll is a redistributable, and 
will likely be managed by third party tools.

Area: corba\core technology

Reference Number: 1146 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/19/98
Severity: Infrequently Encountered
Type: Minor Functionality Failure

Problem:

in D4.02..

If an interface & it's associated .pas file become 
disconnected (making changes to interface does 
not update the .pas file anymore) then the "Expose 
as CORBA object" option (right click on .pas file) 
can no longer be used.

Area: corba\core technology

Reference Number: 1145 (Published: 12/16/98)
Status: Deferred to Next Rel
Date Reported: 8/19/98
Severity: Infrequently Encountered
Type: Unknown

Problem:

There has got to be a better setup ui for visibroker & 
corba objects.  The current implementation of 
command line entries in 4 dos-ish apps is difficult for 
developers & impossible for the people who we 
send our applications out to (sales people).

There also needs to be better documentation of this 
set up w/ more examples.  Currently I don't know if I 
have the 50 - 80 characters that I enter on the 
command line correct or not unil & run my client & 
see if it fails or runs.  Basically I have to guess at 
what I'm entering & that is not good (even with your 
docs & Charlie C's white paper in front of me).

Area: corba\core technology\data module

Reference Number: 1594 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/21/98
Severity: Critical
Type: Basic Functionality Failure

Problem:

If client is left running for more than 6 minutes 
without any activity, subsequently changing data 
and applying updates will result in Catastrophic Error 
failure.

Steps:

1.  Create server with tTable Table1 talking to 
DbDemos customer.db, run it.
2.  Create Client which has ClientDataSet talking to 
Corba Server Table1, hook up grid and 
ApplyUpdates button.
3.  Run Client,  DON'T change data or apply 
updates.
4.  Wait 6 or 7 minutes, try again to get error.

Area: corba\core technology\midas

Reference Number: 1535 (Published: 12/21/98)
Status: Deferred to Next Rel
Date Reported: 10/9/98
Severity: Commonly Encountered
Type: Basic Functionality Failure

Problem:

If corba midas server is based on a parameterized 
query and the param is not set on the server, client 
gets "Catastrophic Failure" calling 
TClientDataSet.FetchParams.

Area: corba\core technology\tcorbaconnection

Reference Number: 1012 (Published: 7/23/98)
Status: Fixed in Version 4 Update Pack 1
Date Reported: 7/22/98
Severity: Critical
Type: Crash

Problem:

Client fails to connect to the object on the server 
using the AppServer property.

The ObjectID variable in the DoConnect procedure 
in CorbaCon.pas gets the value:
IDL:ProjectName/ObjectName:1.0 

instead of the correct value of:
IDL:ProjectName/IObjectName:1.0

Note: The 'I' after the forward slash.

Steps:

- Create a Server that exports a single method
- Drop a CorbaConnection on a Client
- Set the repository ID properly and set connected 
to True.
- Access the AppServer property
// Interface does not match

Workaround:

1) make a local copy of CorbaCon.PAS
2) Change TCorbaConnection.DoConnect as 
shown below
3) Include the local copy of CorbaCon.PAS in your 
project.


procedure TCorbaConnection.DoConnect;
const
  SPrefix = 'IDL:';   // Do not localize
  PrefixLength = Length(SPrefix);
  SFactory = 'Factory';
var
  Intf: IUnknown;
  FactoryId, ObjectId: string;
  IID: TGuid;
  P: Integer;

  function AddI(RepID: String): String;
  begin
    Result := RepID;
    if Pos('/', RepID) > 0 then
      Insert('I', Result, Pos('/', RepID)+1);
  end;

begin
  if FConnecting then Exit;
  FConnecting := True;
  try
    CorbaInitialize;
    if (Length(RepositoryId) < = PrefixLength) or
    (AnsiCompareStr(Copy(RepositoryId, 1, 
PrefixLength), SPrefix) < > 0) then
    begin
      FactoryId := Format('%s%s%s:1.0', [SPrefix, 
RepositoryId, SFactory]);
      ObjectId := Format('%s%s:1.0', [SPrefix, 
AddI(RepositoryId)]);
    end
    else
    begin
      FactoryId := RepositoryId;
      ObjectId := AddI(RepositoryId);
      P := Pos(SFactory+':', ObjectId);
      if P > 0 then
        Delete(ObjectId, P, Length(SFactory));
    end;
    if not 
CorbaInterfaceIDManager.SearchGuid(ObjectId, 
IID) then
      IID := IDataBroker;
    if FCancelable or (csDesigning in 
ComponentState) then
      Intf := ThreadedBind(FactoryId, ObjectName, '', 
HostName, IID,
        1000, ThreadTimeout)
    else
      Intf := CORBAFactoryCreateStub(FactoryId, 
ObjectName,
        '', HostName, IID);
    if Intf < > nil then
      SetAppServer(Intf);
  finally
    FConnecting := False;
  end;
end;

Area: corba\core technology\tcorbaconnection

Reference Number: 1154 (Published: 10/22/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 8/20/98
Severity: Critical
Type: Crash

Problem:


If you create a server which has a TClientDataset 
and has data, and IS ACTIVE (This is key, if you 
deactivate it, it does not bring up Dr. Watson) then 
compile and run it, and the Smart Orb....

Now create a new application and drop a Corba 
Connection. Fill in it's
repository id and try and connect it. Now the server 
dies and triggers Dr. Watson. The client just says 
"Connecting to Corba server" and I end up pressing 
cancel

Steps:

1.  Load the server in the IDE.
2.  Build it and run the EXE.
3.  Load the client into the IDE.
4.  Set the Connected Property of the 
TCorbaConnection to True.
Dr.  Watson should appear.

Area: corba\core technology\tcorbaconnection

Reference Number: 745 (Published: 10/16/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 6/15/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Each time a method in a Corba server is invoked, 
there is a significant memory loss.

Steps:

Create a corba server with a single method
Create a client to call this method in a loop
Open the task manager and view the memory 
consumption of the server

Area: corba\core technology\tcorbaconnection

Reference Number: 1271 (Published: 10/24/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/2/98
Severity: Infrequently Encountered
Type: Basic Functionality Failure

Problem:

Connecting 2 clientdatasets up in a master/detail 
relationship on either the client or tqueries on a 
server and connecting via CorbaConnection results 
in an "Unexpected Failure" message when the 
detail cds goes active.  DCom of the same works.  

D4.02 win98 client  server is on either a win98 or 
ntserver machine.

This problem is only for those servers that connect 
immeditely at startup.


Area: corba\late binding (dii)

Reference Number: 986 (Published: 8/4/98)
Status: Fixed in Version 4 Update Pack 1
Date Reported: 7/20/98
Severity: Critical
Type: Crash

Problem:

Passing 'sequences' between Client/Server via DII 
causes an AV in OrbPas.dll



Area: corba\late binding (dii)

Reference Number: 1598 (Published: 12/17/98)
Status: Deferred to Next Rel
Date Reported: 10/21/98
Severity: Critical
Type: Basic Functionality Failure

Problem:

Delphi Corba Client connected to Java Corba 
Server  passing an ANY as a sequence of integers 
fails with an error 'Parameter(1) is not of the 
expected type'

Area: corba\late binding (dii)

Reference Number: 1550 (Published: 10/16/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 10/13/98
Severity: Serious
Type: Crash

Problem:

Calling ORB.MakeSequence with a TypeCode of 
FixedArray causes an AV in ORB_R.DLL

Area: corba\late binding (dii)

Reference Number: 1466 (Published: 10/28/98)
Status: Fixed in Version 4 Update Pack 2
Date Reported: 9/30/98
Severity: Serious
Type: Basic Functionality Failure

Problem:

Cannot pass Enum Types as parameters

// Generates an error 'Variant cannot be converted 
to ANY when Integer Variable is used to hold 
Enums



NOTE: These listings are for informational use only. It is not intended for use when calling Borland's Developer Support Department.
If you have any suggestions or complaints about these 'Delphi Enhancements and Fixes' pages, please contact the Delphi Administrator. This e-mail address is not intended for support issues.
 
Site Map Search Contact