Reputation: 13
Please tell me is it possible to call a java method or a struts action class when a record is inserted in mysql database Actuall my problem is i have 2 databases(both are mysql databases namely db1 and db2) running in two different locations.I need communication between them.When a record is inserted in X table in db1 at the same time some data must be insert in Y table in db2 depending up on the data inserted in db2 some data must be inserted in Z table in db1.
Actuall my project is patient care project
for a group of patients one care taker is there
for each and every patient one embeded button is there.
the mapping between the patient details and the embeded button and the corresponding care taker is there in db2 database
when the patient pressed the embeded button embeded information is inserted in db1
and inorder to send a mobile message to care taker i haveto get the data from db2 depending up on the embeded information inserted in db1 as patient and caretaker mapping is in db2
the businesslogic communicate with db1 iswritten in vc++
the businesslogic communicate with db2 iswritten in java
so i need communication between db1 and db2
technologies used
java,struts 1.2
database : mysql
Upvotes: 1
Views: 3279
Reputation: 5609
Here's an extension for MySQL (UDF) that allows execution of other programs from MySQL.
It should be relatively straightforward how to use it. I don't know ins and outs of your application, but you can create a trigger that calls a program and passes certain parameters you require to establish your db communication.
Upvotes: 0
Reputation: 89169
Even though it's possible to use another Struts action (As it's a simple POJO class that can be instantiated like SomeAction action = new SomeAction()
) I would not recommend it for few reasons:
ActionForward
response.My suggestion is to put your business logic in a service that you can either pass the same data to 2 databases or have strategy that understands that the data needs to be recorded to 2 databases.
Upvotes: 0
Reputation: 4572
You can have a java process periodically query the table to check for new records. A better solution would be to have a database trigger perform the business logic you need (though you can't call the struts action directly). If you can provide more detail on what business logic you need performed after the row is inserted, we can maybe provide a much cleaner design.
Upvotes: 0
Reputation: 298878
I don't think it it is possible to trigger java code actively from db insert. What we do is the opposite:
You should not do any such thing in a web context, so forget struts in this context!
Upvotes: 3