One of the frustrations of development is a hanging map. It may be trying to create too many iterations, or it may be stuck in an infinite loop (or should we say 'infamous' loop haha). Some of the first things I check are:
'While...do' loops that may not be terminating. They will cause the translation (frustration) to go on forever until the translation is killed. These rules can be commented out and quickly confirmed or ruled out as the problem. If you narrow it down to a “while..do” rule, you can research why it does not update. For instance, there may be an if condition that is never true. Messageboxes can help verify this.
Another common culprit are the 'invalid links'. An example is a field from a single occurring record linked to a field in a record with a large maximum loop setting. This will try to create as many output records as the maximum occurrence setting will allow! It will eventually complete, but this might be of little solace when the output record can loop 999,999 times. You should receive a warning if a link is invalid (make sure you have warnings turned on in the Options → Preferences → Confirmations tab).
Outbound SQL map cursor is not advancing to the next row:
One cause my be that an input record Key field does not match on a record with the cursor operation set to automatically advance to the next row of the result set. This may be fixed by adding an 'Order by' in the query, and using string type fields for the key fields.
In Gentran:Server for Windows
Outbound ODBC maps may hang if:
The Partner cannot be found. Please consider utilizing the Update process from the Outbound ODBC Mapping No Partner Found whitepaper.
Processed indicator column is not updating due to invalid update statement (ie, no table keys, wrong table keys, invalid extended rule to update the value).
I don't want to go on infinitely (nobody likes that). I do hope this provides starting points for some basic troubleshooting.