![]() |
|||||||||||||||||
|
|
|||||||||||||||||
|
|
|||||||||
|
Delphi |
DELPHI DEVELOPER SUPPORT
Areas of concentration under: corba
Area: corba\core technology 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 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 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 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 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 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 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 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 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) Problem: Passing 'sequences' between Client/Server via DII causes an AV in OrbPas.dll Area: corba\late binding (dii) 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) Problem: Calling ORB.MakeSequence with a TypeCode of FixedArray causes an AV in ORB_R.DLL Area: corba\late binding (dii) 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. |
|
|
|
|||||
| Made in Borland® Copyright© 1994-2003 Borland Software Corporation. All rights reserved. Report Piracy, Legal Notices, Privacy Policy Last Modified Thursday, 22-Mar-2001 18:57:03 EST |
|||||