If it's hardware inventory, you can try running the inventory scripts manually. Here are a couple kb article that explain how.
http://www.symantec.com/docs/HOWTO32547 - Manually running inventory ULM scripts
http://www.symantec.com/docs/HOWTO36035 - Gathering inventory data for troubleshooting purposes
And, here's a shell script that will run each inventory script. You can create and run it anywhere on your system since it changes to the correct directory.
By running this, you can see which category or script is hanging. We can trouble shoot from there.
===========================================================
#!/bin/sh
### Modify the shell in the above statement, as appropriate or required
### this script requires sudo or root priviliges
# cd to the correct directory for running individual shell scripts.
cd /opt/altiris/notification/inventory/var/repo/providers/CltInv_Common/aex-shellprovider/scripts
#
# find the current OS
# Test for OS/Platform. Case-sensitive values used in script names are: AIX, Darwin, HPUX, Linux, Solaris.
CurOS=`uname -s`
#if [ "$CurOS" = "Linux" ]; then
# filemask="*$CurOS*.sh"
#fi
case "$CurOS" in
Linux) filemask="*Linux*.sh" ;;
Darwin) filemask="*Darwin*.sh" ;;
SunOS) filemask="*Solaris*.sh" ;;
HP-UX) filemask="*HPUX*.sh" ;;
AIX) filemask="*AIX*.sh" ;;
esac
# loop thru specific list of directories; run each shell script for appropriate OS
for dir in CltInv_HW CltInv_OS CltInv_SW CltInv_UG SrvInv_DB SrvInv_OS SrvInv_VM SrvInv_WEB
do
for file in $dir/$filemask
do
echo "Processing script: $file"
./$file
done
done
===========================================================