I have built a big Java system that I am now want to deploy on Azure. Unfortunately, a critical application function does not work on Azure's Virtual Machines, and i hope that one of you guys may know why, and whether there is an easy fix.
The nature of the problem: two servers that interact with each other using HTTP sessions.
Here is pseudo code of how it works.
Server A:
Running service (servlet) HostComLeading that performs services on Server B in loop:
PingForwardBlock
{
for (int i=0; i<MAX_ITERATIONS; i++)
{
HTTPPost(HostComFollow);
}
}
When called back from server B just returns some data (anywhere from a few Kb to a few MB):
PingBackBlock
{
// just print something to servlet response and return;
}
Server B:
Service HostComFollow:
for Iint i=0; i<100; i++)
{
HTTPPost(HostComLeading.PingForwardBlock );
if (slowDown)
Thread.sleep(3300); // whait 3.3 seconds
Everything works just fine if the two servers run on physical machines in my home. However, when they run on two Azure virtual instances of Windows, Server B doesn't return after the first interaction (after 100 ping back calls and completion of HostComFollow).
Any insight will be more than appreciated,
Thanks!
Ilan