I have a real sticky problem that I hope one of you bright SQL gods can help
We want to have 4 SQL 2000 servers, all located at different sites on
different networks (totally different networks...meaning not the same company)
.. Users will update their local distributed database and need to have near-
real-time updates from the databases at other sites as those users are
updating their database. Basically all the databases need to be the same, We
want to use Transactional Replication with Updating Subscribers to meet this
requirement. Problem is, my understanding is in order to use this replication,
RPC traffic has to be allowed across the firewalls of the networks. This is
not going to happen, even if it's IP to IP, period. How can we get this type
of replication to work without having to open any RPC ports up on the
firewalls? Can I securely tunnel the RPC traffic through another protocol,
say SSH or HTTPS? Is there another way to do it without the reliance on RPC?
ISA server, proxy server, VPN ect? If so, how would I set that up?
I'm not sure if I am understandng this correctly but I think I also
discovered that SQL actually uses Microsoft's Distributed Transaction
Coordinator (DTC) service rather than it's own TCP/IP network library for
it's distributed transactions. Furthermore these transactions may be
accomplished explicitly by promoting a local transaction to a distributed one,
or implicitly by using one of SQL's built-in stored procedures, which is only
documented by looking at the stored procedures source code. I also discovered
that DTC accomplishes it's distributed transactions using remote procedures
calls (RPC) and that the subscribers cannot update the Publisher without
using RPC. Dang that RPC requirement!!! Why does it have to use such a
dangerous thing as RPC?
Also SQL uses Netbios to report back the state of services on remote machines
but am not sure it's required for successful Transactional Replication with
Bottom line is I need to figure out the RPC problem with this type of
replication and if I can get it to work without it or by using some method to
have all the RPC traffic and it's dynamic port communication go over another
transport protocol. Anyone want to take a stab at this or correct any
misunderstandings I may have???