I have some on-premise based frontend java servlet server, on-premise Java backend app server and one on-premise oracle database server. My Oracle client version is 12.1.0 . Java version is openjdk "1.8.0_222" . And using tomcat v7.0.55 for frontend servlets. The Architecture is like the backend server communicate with Oracle DB to process SQL queries.
Now I moved all my servers to AWS cloud docker based containers except Oracle DB. And my Java backend server is running on AWS docker is connecting to Oracle DB running in on-premise Datacenter.
Now I am facing an issue where the AWS based application having latency when it connects to on-premise database and the latency keeps increasing as the number of requests grows and eventually the application gets gateway timeout if the requests are keep on increasing. But strangely it will not happen if I connect my AWS tomcat frontend servers to on-premise java backend servers which talks to on-premise Oracle DB. it only happens when the AWS Java backend servers talks to on-premise Oracle DB. I am not sure why this is happening. Any ideas will be highly appreciated.
The issue is related to the DAO / ORM framework we using. If you use something like Hibernate , Spring it will work in a way where SQL calls are not optimized with join statements. So to fetch a 1000 objects there will be 1000+ SQL calls. So if there is a single digit millisecond latency in the network to Database it will boot to 1000 times delay time. So the solution was to keep Database as close as possible with the application.
Related
We have a WinForms desktop app that connects to a remote server to pull some data. The remote server hosts a web service on a standard IIS website that queries a SQL Server database installed on the same machine. Today, if the remote server is under maintenance or not available our end-user cannot retrieve the necessary data.
Now I am requested to make this feature fault-tolerant. Here are my questions:
Should I ask for another remote server that runs the same web service and move the DB to a third remote server? So the two web services can connect to the same DB?
Should I consider moving the web service logic to the WinForms desktop app and connect directly to a remote DB paying a first-class 99.99% availability service?
Do AWS or Azure provide a ready-to-use solution that fulfills my requirements?
Is there any other option I didn't consider?
I currently have an SQL Server database running on a VM. I also have a REST API made with NodeJS and ExpressJS that is listening for requests connected to this database for the backend.
On the frontend, I would like my Ionic App to have a local database so that users can still view and use the app when there is no internet connection. There are alot of pictures(paths to pictures) on this database. The database is about 3 GB. What is the best way I can implement so that my App can use a local database that will sync with the SQL Server and be able to view the pictures when there is a data connection?
I have looked at PouchDB, however it is a NoSQL local database. Is there anything similar for SQL Server I can use for my front end?
A client of mine has 2 SAP local servers and he would like to recover his data on the cloud using GCP.
The 2 SAP servers are working with a shared MS SQL database with clustering methodology, one server is active while the other is passive. His reason of recovering the data is that whenever his SAP servers are down he could still access his database with the same functionality he has locally.
I kept on trying to search for a solution to do so using the Google App Engine but as far as I understood there will be no full functionality.
What I thought of is to use the CloudSQL database as a mirror to his SQL database and to get the GAE as a passive server that only works when the systems are down. I found this link which was useful on connecting SAP with GAE but still not with much help on running GAE as an active server.
Any ideas on any other work around?
Thank you.
I´m running 2 servers on Rackspace. I have set up a load balancer that balances the traffic between these two servers.
Each of these servers runs a Glassfish v3 server with a Java EE application on it, that offers a web interface to write some data into server database. The problem is that I need to have the same data on each database (server 1 database and server 2 database).
A resolution to this problem is mirroring of databases.
I would like to ask if there is some automated system to mirror these databases inside the rackspace?
Furthermore I ve found Xendros database cloud that is able to work with Rackspace Cloud. Is it possible to mirror these databases inside the Xeround?
Or are there any better solutions ?
Thanks for answers :)
With Xeround you do not need to mirror your database, you create a single database instance and direct your application servers to work with this instance.
For more information you are welcomed to visit our web site http://www.xeround.com
I have a client with a .Net 1.0 web app that uses IIS and a SQL 2000 database. It is hosted with a shared hosting service and does get not much traffic (a few visitors a day tops). The hosting has occasional downtime, of course, and the client has asked me if I can setup a redundant system to reduce downtime to negligible.
What is the simplest/cheapest improvement I could make to this setup that would satisfy what the client is asking for?
I was imagining hosting the web app and db with 2 different services and adding some logic to the app hand off requests to whichever web server & database are up, but I'm worried about the complexities of keeping the databases in sync.
Is there a better way?
i'd recommend putting and apache2 server with mod_jk in front of the two IIS endpoints.