Using ADF Components for java batch programs

350 views
Skip to first unread message

LERAY FRANCK

unread,
Dec 22, 2014, 8:13:11 AM12/22/14
to adf-met...@googlegroups.com

Hi All,

 

We are currently testing a new internal application developped with ADF technnologies.

 

The major functions of this application are:

- an Web UI with transactions to maintain some tables and to show graphical statistics results,

- Batch/Console Processes to initiate/updates main tables (the main logic is in theses programs, theses programs do not need to run in a WebLogic Domain),

- Some Jasper reports

 

So our questions are about batch/console Programs :

- What is the best approach for developping java batch programs in an ADF context? (In our mind, we hoped to use BC4J entities and Vo),

- Are there inconvenients? Bad ways to avoid...?

- We have some questions about the connection to Am (what about the configuration for java batch programs :connection.xml, adf-config.xml, …).

- What about ADF Logger for batch/console programs?

- Coherence is not needed in theses run configuration, how to disable it?

                              

Thanks in advance.

Franck.                

 

 

Rahul Ganesh

unread,
Dec 22, 2014, 8:37:47 AM12/22/14
to adf-met...@googlegroups.com, franck...@cheops.fr
Hi Franck

You can try exposing the AM methods (ADF BC) as service interface and then create Java proxies to call the web services. This way the service layer is ADF BC while client layer is pure Java and can be scheduled via Schedulers in Oracle Schedulers on any server that can connect to the ADF weblogic domain. On Java end the WSDL connections can be parameterized I guess.

regards
Rahul



--
--
You received this message because you are subscribed to the ADF Enterprise Methodology Group (http://groups.google.com/group/adf-methodology). To unsubscribe send email to adf-methodolo...@googlegroups.com
 
All content to the ADF EMG lies under the Creative Commons Attribution 3.0 Unported License (http://creativecommons.org/licenses/by/3.0/). Any content sourced must be attributed back to the ADF EMG with a link to the Google Group (http://groups.google.com/group/adf-methodology).

---
You received this message because you are subscribed to the Google Groups "ADF Enterprise Methodology Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to adf-methodolo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Florin Marcus

unread,
Dec 22, 2014, 8:51:17 AM12/22/14
to adf-met...@googlegroups.com
Hi FRANCK,

If you want to stay away of Weblogic, my first choice for
implementing batch processes would be database stored
procedures/functions.
Especially when processing large chunks of data, it simply doesn't
make sense to fetch all that data out of database server, only to
process it.
A good DB guy will code this twice as fast than any ADF developer I know.

If the team has Java background only, I would do it in JDBC.
I would choose ADF BC only if I can reuse the BC layer for some of my
UI Screens . Assuming I go ADF BC way, there will be three main
components to this code:

(1) the business logic, placed in a Application Module custom method

(2) the client job, invoking the business logic. This can be a simple
java class, invoking AM business logic the same way JUnit Tests do:
(http://www.oracle.com/technetwork/articles/adf/part5-083468.html)

(3) the scheduler, where myself I prefer www.quartz-scheduler.org, as
being more scalable than schedulers coming with Java or Oracle , yet
very simple to use.

Thanks,
Florin

Sameer Darbha

unread,
Mar 9, 2015, 8:08:56 AM3/9/15
to adf-met...@googlegroups.com
Hi All

We also have a requirement of a Batch program to insert/update into the DB tables from data coming from flat files.

Initially our first approach was to write this in PLSQL and call it from a scheduled Java program, but we have to rewrite the validations etc in our web application as well.

We are inclined towards using ADF BC for this as we also will have a Web Application which will create/update data into the same tables.

Following are the reasons why we think we have to use ADF BC for this 

a. Reuse ADF BC components in the Web application as well as Batch Programs
b. Data might be Date Effective, so we are planning to use the Date Effectivity feature of ADF BC.
 
But following are our concerns to use ADF BC. 
Can anyone please comment on the following.

a. AM Configuration, Connection Pooling, Activation/Passivation

   Will there be any issue if we use the same AM for both Web and Batch programs related to Connection Pooling and Activation/Passivation ?
   What if we use a separate AM ? Any recommended configuration will help ? 
   Any other things to keep in mind ?

b. Time out issues 

   Assuming that we expose the program as AM Service and call it from a Proxy / SOA, there can be Timeout issues (assuming the program might take more than default 5 mins to execute)
   The document http://docs.oracle.com/cd/E25178_01/fusionapps.1111/e15524/uc_soa_asyncservice.htm says the services should not be called asynchronously.
   Is there any other way to call this batch other than as a Service ? (in case we do not have SOA in our tech stack)
   Even proxy client call seem to Timeout.

c. Performance
 
    The document http://docs.oracle.com/cd/E25054_01/fusionapps.1111/e15524/bs_gs.htm#BACIHJBF says ADF BC should be used for data volumes low to medium. 
    If we have to process let us say some 10,000 rows for a batch process, is it considered low to medium ?
    Worst case, lets say we create 10,000 ViewObject Rows and process/commit at once, will that impact performance ?
    What are the things to keep in mind from performance aspect in writing such program ?
    
d. Any other unkown issues ?

Thanks for any help
Regards
Sameer

Nagesh Bk

unread,
Mar 7, 2016, 8:13:43 AM3/7/16
to ADF Enterprise Methodology Group
Hi All,

Any update on the below quires on Batch program. We also have a same requirement.

Thanks for any help.

Thanks
Nagesh

John Flack

unread,
Mar 7, 2016, 8:32:24 AM3/7/16
to adf-met...@googlegroups.com

Just as Florin suggested, we do this sort of thing with a database job written in PL/SQL.  If you don’t have good PL/SQL programmers and do have good Java programmers, or you want to reuse the Java validation code, Oracle does have a way to write stored procedures in Java.  Bit of a pain, but doable – I have a few Java stored procedures in my databases.  From the ADF side, all we do is upload the files to be processed to a shared (NFS) directory.  DBMS_SCHEDULER has a way to start a job whenever it sees a new file in a directory.  Or you can simply call a method in the AM that calls a stored procedure to start a job – it can register an event that DBMS_SCHEDULER is set to watch.

Reply all
Reply to author
Forward
0 new messages