Can AX manage database replica/mirroring? - dynamics-ax-2009

In the future my company will open two remote office, so we will have 3 single office that can access to Dynamics AX.
What is the best 'scenario' I can configure?
Is it possible to have 3 AOS (one per office) that access to 3 physical database (one per office) that syncronize each other, so if the HDSL line drop, each office can work indipendetely ?
Or it is impossible, so any AOS must access to the same 'single' database?
As you can see my main 'concern' is about DSL Line and not about 'server hardware' failure. Where we have headquarters, we have worst DSL line, so our concern is 'If the line drop, how to allow remote office to continue to work ?'

All your AOS's and DB servers should be centralized, I would also have remote access to terminal servers from your 3 offices. Your AOS and DBs should be connected via fibre in your server room, I think having them geographically far apart would only be okay if you had access to some serious fibre links.
Your issue seems to be your HDSL. Think about investing in leased lines, backup via a 2nd line directed to a different exchange, and even 3g dongles or adsl modems with 3g backup (you can get modems with a usb port for a 3g dongle). If you are connecting remotely via a term server or maybe a citrix desktop, 3g would be an adequate backup strategy.

Terminal server is your best bet. If your "main office" has bad DSL, perhaps one of your other offices can be considered your "AX Main Office" where servers and reliability will be.
AX does support database mirroring, but not for your purposes. It's for failover. You could also do a VPN tunnel where your other networks could all use local clients on the VPN.

Related

Site-to-site VPN vs point-to-site VPN

I have a scenario where I have a Windows VM in windows Azure that needs to connect to an external customer network (and connect to a database that is not in Azure).
This traffic is uni-directional in that it is only my VM that needs to connect to the customer's databases and not the other way around. Site to site is managed on Azure, which I cannot really test locally.
Conceptually, connecting to the customer's network via a point-to-site VPN seems more suitable (by creating the VPN connection in Windows itself via the network config).
The customer prefers site-to-site even though they don't need to connect to my VM. Am I missing something?
In point-to-site, you have to connect to the network you want to access manually. Usually, if you log-off or restart the workstation it loses connection, and you have to reconnect every time. It's common to use this type of VPN when we are working remotely, and we need to access our company assets. The channel is bi-directional, but it's 1-to-many.
Site-to-site is used when you want to connect two networks and keep the communication up all the time. It's also bi-directional, but it's many-to-many and stays up no matter if your server/workstation is running or not because the connection is established through a network gateway and not from the computer operating system.
In Azure, the Virtual Network Gateway is the platform providing both functionalities. You can configure site-to-site to connect to your customer network. If this network is not running in Azure, they usually have an appliance to establish dedicated tunnels. As long as it supports IPsec IKE, you are good to go.
If you are using the VM in Azure as a workstation, then point-to-site may be enough, but if your application needs to get data from the customer database automatically with or without someone logged in the VM, then site-to-site is a better approach.
A better explanation can be found here

USB sync of local database to WP7

I have a requirement where data on SQL server needs to be synced to WP7 devices through USB.
I initially thought of writing a WCF Lib., but it'll go online & sync even if device is connected to USB in local network (Where it's easy & cheaper to get data over local network rather than go to internet & get it).
I have coded isolated storage to save the data synced, but i need an efficient way of getting data from local network, while it's connected to local network.
My questions are:
Is there a way to request data from local network when connected to local network in WCF?
Does someone have a C# code i can use to write synchronization routines to usb over local network? (I would love to have the code, if anyone has this)
Is there a better way of achieving what I'm trying to do?
I'm hoping for some quick answers for this problem, any help is greatly appreciated.
Thanks.
My recommendation would be for your WCF API to have an DNS name pointing to an internal IP address, which is not available outside of the local network and in the routing it will get resolved through USB and another DNS name pointing to an external IP Address which is only available outside of the local network. Your application would try to connect using the local IP address first, which should go through the local network and if it fails it should retry the with external option.
You can use NetworkInterface.NetworkInterfaceType to detect a connection of type Ethernet.
Implementing a full sync protocol is complicated and not something I would recommend attempting unless you really have to.
If you do go down this route I'd recommend using item based message queues and then syncing the queues (and replaying as necessary) rather than trying to sync database tables. It'll depend on the requirements of your application and nature of the data though.
Further to both Murven and Matt's answers, I'd recommend looking into the Microsoft Sync Framework, which supports WP7 as a client, commonly uses WCF on the server, and has great support for a wide range of edge cases.
You can then, as per Matt's answer, watch for connectivity changes and, on USB connection, start a sync to a local IP.
When it comes to targeting mango, you can implement it as a ResourceIntensiveTask and it will run when USB is connected, even if the app isn't running.

Tunnel outbound HTTP over inbound socket connection

** This question might belong on SF except for one of the constraints below (not having admin rights on one machine) **
At my work I have two machines, A and B. Machine A is my primary development machine. It is completely disconnected from the corporate network. Machine B is connected and is used primarily for email and web access. It is rather locked down - I don't have admin rights and it does not accept inbound connections. I cannot run programs I download, however I have Visual Studio 2005 and can create and run executables which works great (notwithstanding lack of admin rights).
I have an ad-hoc wireless network between the two and I'm able to transfer files via standard Windows shares so long as I browse from Machine B to a share on Machine A. I am also able to browse to websites hosted on Machine A, including non-standard port numbers (ie, http://machineb:12121/).
My goal is to create some sort of connection initiated by Machine B to Machine A which then grants me internet access on Machine A, presumably by setting up a proxy server on Machine B. However, I would need source code to the proxy server so I could build & run it locally.
My initial thought is to create two apps, one to run on Machine B and pings the app on A (which listens for local requests on port 80), and when it receives a response (containing a URL I guess) to use a HttpWebRequest object to hit that URL and then pass that data back... but I can see this getting complicated real quick.
Any suggestions to get me started?
Any number of open source web proxies will do what you're asking. You can do it with apache, and mod_proxy, even.
However, were I your admin, and I caught you tunnelling access out of a machine I'd specifically prohibited access from/to, I would do such things to you that other programmers would weep at the very mention of your name. Tread lightly.

Need to Automate PPTP connectivity from Linux to Windows

I'm in need of setting up cron-based VPN connectivity from Ubuntu "Jaunty" to a Windows-based VPN over PPTP for incremental DB synchronization. Using the default Network Manager and PPTP module everything seems to work fine. However, I have 2 issues:
1) Despite checking "Use this only for resources", I still lose my local internet connection and am routed through their servers.
2) As a result of 1 I have need to automate connecting to and disconnecting from the VPN in order to perform various tasks as the machine is at the office and I am not.
Much of the information I'm finding on PPTPing from Linux to Windows involves the use of GUI Network Manager, etc. However, I need to perform these steps from the command line for the sake of automation. Can anyone point me to a quality bit of documentation for this specific case?
Best.
http://pptpclient.sourceforge.net/
I think this site has everything that you need :)

command line/Powershell administration of networks behind NAT

Scenario.
3rd party admins want to administer systems with PS remoting/direct login of clients and servers behind NAT gateways.
The systems are SBS 2003 or W2K3. all are behind NAT firwalls with varying RFC1918 subnets and no site to site VPNs (although a solution would likely require this.)
Each site has its own unrelated AD setup.
The 3rd party admin network (also behind a NAT)has no trusts with the target sites (obviously SBS sites have this problem by default an It seems VPNs have problems if the same RFC1918 subnet address range is used on both sides.
Name resolution across VPN would be a prerequisite. advice
Is there some "reflection" approach (similar to Ultra VNC that would serialize PS objects and pass them through NATs without requiring router reconfig? or is portforwarding to SSH or similar required with direct remote logins? can any of this be accomplished or automated without use of a mouse?
what .NET remoting approaches might help solve this problem?
the nsoftware Powershell server solution works for SSH it seems but only where machines are publically addressable and it was also discounted due to its per CPU licensing scheme.
are there other similar alternatives to it?
You're probably best off finding a way to tunnel to a single machine, and then hop from there to the machines you want to administer. You'd need to forward a port to that first machine.
Your network security people should be very concerned about this machine; if they're not, they don't know their jobs.
My first approach would be to use PowerShell V2's remoting for both hops.
I concur with #JayBazuz,i Powershell V2 (currently in CTP3) uses WinRM, which can be configured to work over HTTPS(really any port you choose), thus working through firewalls and NATS.
james

Resources