Home Server
New Blog Posts: Merging Reports - Part 1 and Part 2

Upgrade From 12.04 to 18.1

edited May 2017 in Server
Currently using RB 12.04 Server and looking to upgrade to 18.1 and
wondering what kind of effort this will take.


1> I have lots of code in RAP. Also heavily use the
rsClientRecieveAutoSearchFields to "autofill" report values rather than
using the user web interface. Can I expect everything to compile and run
as it did in 12.04 ?

2> I'm assuming an 18.1 client can not communicate with a 12.04 client.
Is there an easy way for both servers to exist on the same box during a
transition? Perhaps a different URL based on the client version? There
is likely a white paper someplace I missed on upgrading that I hope
someone can point me too.

3> Any advice from users that have done this upgrade? 12.02 to 18.1
server, either in the current version of Delphi (10.2) or in an older
version Delphi 2007?

Thanks for any help and insight you can provide.


Delphi 2007 / Oracle 12c / RB Server 12.04

Comments

  • edited May 2017
    Hi Jon,

    1. Yes

    2. For two report servers, use a unique port number. For two web tier's use
    a unique URL.

    3. I recommend upgrading to the latest Delphi version. Delphi has evolved a
    long way since D2007. Supporting the old Delphi versions prevents us from
    taking RB forward due to limitations. Some of the RB 18 features are not
    available for the old Delphi versions, for example the Xlsx feature. We've
    had to drop support for some of the older Delphi versions and will continue
    to be forced to do so, there are just too many.



    Best regards,

    -
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited August 2017
    Sorry Nard I think I hit reply so I sent this to your inbox by mistake.

    Still using Delphi 2007 as our applications are not fully unicode
    compliant. Would like to get RB 18.01 deployed now before we get to
    Delphi 10+

    Using RAD Studio Delphi 2007 Update 3 with RB Server 12.03 I installed
    RB Server 18.01 and built everything, deployed servers etc. The only
    thing that changed was the RB Version from 12.03 to 18.01.

    Everything was working with 12.03, with 18.01 I'm getting an AV with all
    zeroes as the address followed by "CheckSynchronize called from thread
    $E94, which is NOT the main thread." on reports where I make Oracle
    Package calls to fill temp tables from the client side
    OnReceiveAutosearchParameters. Simple reports run OK under RB 18.01

    Is this a common issue with RB upgrades? Any clue on where I should be
    looking to resolve it? This could very well be something other than RB
    but again it's the only thing that changed. Thanks for your help.

    RAD Studio Delphi 2007 Update 3 / RB Server 12.03 & 18.01 / Oracle 12C








  • edited August 2017
    Hi Jon,

    Try setting ClientReport.PreviewFormSettings.SinglePageOnly to True.

    RB 14 introduced the scrollable page preview, which generates the pages in a
    background thread. Perhaps there is an issue with your event-handler code
    executing in a thread. When PreviewFormSettings.SinglePageOnly is True, the
    report will use the old single page preview which generates the pages in the
    main thread.



    Best regards,

    -
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited August 2017
    Thanks Nard - Setting ClientReport.PreviewFormSettings.SinglePageOnly to
    True solved the problem which begs a bigger question...

    For some of our larger reports we use temporary tables that are filled
    calling Oracle Procedures from the client OnRecieveAutoSearchParameters.
    I used the preview pane to provide user feedback while the tables were
    being loaded, worked great.

    Is there a better/safe place to make these Oracle calls in Reportbuilder
    where it wouldn't case an issue with the threading? How do other folks
    handle loading temporary tables with RB 18? Any report demos that do
    processing ahead of or during the report generation that you know of?

    Thanks again for solving my larger problem.

    Delphi 2007 RAD Studio Update 3 / RB Server 18.01 / Oracle 12C
  • edited August 2017
    Hi Jon,

    No UI can be performed in a thread. That's a limitation of Windows API and
    VCL. The Oracle calls are likely ok, but you mention 'use the preview pane
    to provide user feedback while tables are loaded'.

    Delphi has a TThread.Synchronize class method that can be used to execute a
    method in the main thread.

    Here's a simple example. I created a FillTempTables method and then call it
    from the ReceiveAutoSearchFields event using TThread.Synchronize


    procedure TForm1.rsClientReport1ReceiveAutoSearchFields(Sender: TObject);
    begin
    TThread.Synchronize(nil, FillTempTables);

    end;

    procedure TForm1.FillTempTables;
    begin
    // TODO -cMM: TForm1.FillTempTables default body inserted

    end;




    Best regards,

    -
    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
  • edited August 2017
    So in this case is the main thread the RBServer.exe ?


    If so, the the UI updates would then be OK because they are coming from
    the main thread ?

    Thanks Nard.


    (Sorry I think I hit reply the first time again... instead of posting to
    the group)
  • edited August 2017

    The rbServer.exe is an multi-threaded application. Client requests are
    processed in threads. This enables the server to handle multiple request at
    the same time.

    The rbClient.exe mostly executes in the main thread. As mentioned previously
    the scrollable preview uses a background thread. Setting
    PreviewFormSettings.SinglePageOnly to True uses the old single page preview,
    which uses the main thread.




    Best regards,

    -
    Nard Moseley
    Digital Metaphors

    Best regards,

    Nard Moseley
    Digital Metaphors
    www.digital-metaphors.com
This discussion has been closed.