Uploading large CAD assemblies (over 200MB) to simulation data management is completely hanging. The upload progress bar reaches about 30-40% and then just stops indefinitely, eventually timing out after several minutes. This is blocking our entire simulation workflow since we can’t get analysis models into the system.
We’re running Windchill 11.1 M030 with the Simulation Data Management module. Smaller files (under 50MB) upload without issues, but our typical assemblies with full simulation mesh data are much larger. I’ve checked the upload size limits in the preferences and they appear to be set to 500MB, which should be sufficient.
I’m not sure if this is related to server timeout settings or if there’s specific configuration needed for large assembly handling in the simulation module. The method server logs don’t show any obvious errors, just connection timeouts. Has anyone dealt with this and found a solution?
Don’t overlook the content server configuration either. Large file uploads go through the content server, and if the content server’s temporary storage or network buffer settings are too small, you’ll see exactly this behavior - upload starts fine but hangs partway through. The content server has its own timeout and size limit configurations separate from the method server.
Beyond web server timeouts, simulation data management has its own upload handling that’s different from standard document uploads. The simulation module processes uploaded files through a staging area before final storage, and large assemblies can exceed the staging area size limits or processing timeouts. Check your simulation-specific configuration properties.
I’ve tuned this exact scenario for multiple simulation-heavy deployments. Here’s the complete configuration addressing all three areas:
1. Upload Size Limits:
Increase the maximum upload size across all layers:
Web Server (Apache httpd.conf or IIS web.config):
- Set
LimitRequestBody to 1073741824 (1GB) or higher
- For IIS: `maxAllowedContentLength=“1073741824”
Windchill Properties (wt.properties):
wt.content.upload.maxsize=1048576 (in KB, so 1GB)
wt.httpgw.mapper.maxPostSize=1073741824 (in bytes)
Simulation Module (sim.properties):
sim.upload.maxsize=1048576000 (in KB)
sim.staging.maxsize=2097152000 (staging area, 2GB recommended)
sim.assembly.upload.chunksize=10485760 (10MB chunks for large files)
The chunked upload is critical for large assemblies - it breaks the upload into manageable pieces that can recover from temporary network issues.
2. Server Timeout Settings:
Configure timeouts at multiple levels to handle long uploads:
Web Server Timeouts:
- Apache:
Timeout 3600 (1 hour)
- Apache: `ProxyTimeout 3600
- IIS: `connectionTimeout=“3600”
Method Server (methodserver.properties):
wt.method.server.requestTimeout=3600000 (in milliseconds)
- `wt.method.server.socketTimeout=3600000
- `wt.rmi.server.timeout=3600000
Content Server (content.properties):
- `content.server.uploadTimeout=3600
content.server.processTimeout=1800 (processing after upload)
content.server.networkBufferSize=65536 (64KB buffer)
Simulation Worker (sim.properties):
sim.worker.upload.timeout=7200 (2 hours for very large assemblies)
- `sim.worker.staging.timeout=3600
3. Large Assembly Handling:
Optimize for large assembly processing:
JVM Memory Configuration (setenv.sh or setenv.bat):
- Increase method server heap:
JAVA_OPTS="-Xms4g -Xmx8g" (adjust based on your server RAM)
- Add:
-XX:MaxDirectMemorySize=2g for NIO buffers used in large file transfers
Content Server Optimization:
- Enable streaming mode for large files in content.properties:
- `content.upload.streaming.enabled=true
content.upload.streaming.threshold=52428800 (50MB threshold)
- Configure vault storage for large files:
content.vault.largeFile.threshold=104857600 (100MB)
content.vault.largeFile.storage=dedicated (separate storage pool)
Simulation-Specific Assembly Handling (sim.properties):
sim.assembly.preprocess.enabled=true (pre-process large assemblies)
sim.assembly.compress.enabled=true (compress during upload)
sim.assembly.validate.deferred=true (defer validation until after upload completes)
sim.assembly.components.parallel=true (parallel processing of assembly components)
Database Configuration:
Large assemblies can create database bottlenecks during metadata creation:
- Increase database connection pool: `wt.pom.dbcp.maxActive=100
- Increase statement timeout: `wt.query.timeout=300
Additional Optimization:
For assemblies over 500MB, consider implementing a two-stage upload process:
- Upload to staging area with minimal validation
- Background processing for full validation and content repository storage
Enable this in sim.properties:
- `sim.upload.staged.enabled=true
- `sim.upload.staged.background=true
This allows users to continue working while the large assembly is fully processed in the background.
Monitoring and Troubleshooting:
Enable detailed logging to diagnose remaining issues:
- Add to log4j.properties: `log4j.logger.wt.content=DEBUG
- Add: `log4j.logger.ext.sim.upload=DEBUG
Monitor the method server during uploads:
- Watch heap usage: `jstat -gcutil 1000
- Check for network issues: Monitor content server logs for connection resets
- Verify staging area has sufficient disk space: Check `/wtSafeArea/simulation/staging
After implementing these changes, restart all Windchill services (method server, background method server, content server). Test with progressively larger assemblies to verify the configuration handles your typical file sizes without timing out.
Large file uploads timing out is usually a web server or method server timeout issue. Check your Apache or IIS timeout settings - the default 120 seconds isn’t enough for 200MB+ files on slower networks. You’ll need to increase both the connection timeout and the request timeout.
The staging area is configured in sim.properties, but you also need to look at the method server heap size and content server settings. Large assembly uploads consume significant memory during processing. If your method server doesn’t have enough heap allocated, it can cause the upload to stall when the file is being processed and stored in the content repository. Check your JVM memory settings.
I increased the Apache timeout to 600 seconds, but uploads are still hanging. Where do I find the simulation-specific staging area configuration? Is this in the simulation data management preferences, or are there properties files I need to modify directly?