How to debug Bank connection

From MTHWiki

Jump to: navigation, search

Contents

Capturing OFX communications between My Money and a bank

My Money communicates with the banks in the US and Canada using OFX (Open Financial Exchange) protocol. Sometimes it is necessary to capture the details of this communication to troubleshoot a problem for example, or to better understand the details of what is going over the wire into banks. My Money version 2.0.30 introduced an internal debug variable that could be switched on to save the details of this communication.


Security

My Money uses a combination of cryptographic protocols to provide secure communications on the Internet for data transfers. When communicating with the banks My Money uses Secure Socket Layer or SSL to protect data in transit from eavesdropping and man-in-the-middle attacks.

Please understand that enabling debugging of OFX communications will degrade this security, your information will be saved locally into text files that could be compromised. We strongly suggest to enable this debugging only for limited periods of time to troubleshoot a specific problem and disable it once the problem has been resolved.

Capturing communication details

TO enable OFX debugging you will need to switch My Money into debug mode. To do so please open My Money Console and type

SwingMoneyView.singleInstance.setProperty("ofx_debug","true");

to validate that the variable was set please type

print (SwingMoneyView.singleInstance.getProperty("ofx_debug"));

this should return true

See the screen shot for illustration:

Image:Ofx_debug.png


Once the ofx_debug variable has been enabled all communication with the banks will be saved into a file ofx_debug.log

This file is normally written into My Money profile folder, which is located in the following possible places:

Windows Vista Users\<UserName>\AppData\Roaming\.mymoney
Windows 2000, XP, Server 2003 Documents and Settings\<UserName>\Application Data\.mymoney
Windows NT WINNT\Profiles\<UserName>\Application Data\.mymoney
Mac OS X ~\.mymoney
Linux and Unix systems ~\.mymoney


If your application is sandboxed, for example you downloaded it from one of the App Stores - you need to find out where your application data is stored, the easiest way of doing it is to start MyMoney, use View-Show console menu and type the following command in the console -
print(SwingMoneyView.singleInstance.environment.getUserApplicationHome());
Please note the output, this is where your user data is written to, for example it could be
/Users/xxx/Library/Containers/com.mth.money/Data/Library/.mymoney


Once you have located the file you can open it with an text editor, you will see details of communications inside, the following fragment captures communications between My Money and Chase.

>>>> Ofx Connection Log: 2008-06-26
[REQUEST][GetAccountList]----------------------------
Server:https://onlineofx.chase.com/chase.ofx FID:10898 ORG:B1

OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX>

<SIGNONMSGSRQV1>
....
....

[RESPONSE][GetAccountList]----------------------------
OFXHEADER:100
DATA:OFXSGML
VERSION:102
SECURITY:NONE
ENCODING:USASCII
CHARSET:1252
COMPRESSION:NONE
OLDFILEUID:NONE
NEWFILEUID:NONE

<OFX><SIGNONMSGSRSV1><SONRS><STATUS><CODE>0<SEVERITY>INFO<MESSAGE>Success</STATUS>
....
....


Locating Log Files

If you are on Mac/Linux the log file (ofx_debug.log) is in a hidden directory and will not be found using normal means.

To copy your log file to more accessible place please do the following:


1) Open up mac terminal application or linux console

2) type in in the command line

cp ~/.mymoney/ofx_debug.log ~/Desktop

3) Press enter, this will copy the log file to your desktop, if you minimize all windows you will see it


Disabling OFX Debug

Once switched on OFX debug will stay on between My Money sessions. You need to explicitly switch it off to return to normal security grade.

To disable OFX debugging please type:

SwingMoneyView.singleInstance.setProperty("ofx_debug","false");

to validate that the variable was set off please type

print (SwingMoneyView.singleInstance.getProperty("ofx_debug"));

this should return false


We strongly suggest to delete the ofx_debug.log from the system once you finished troubleshooting OFX issues.

Personal tools