Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 829213
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T03:50:48+00:00 2026-05-15T03:50:48+00:00

For historical reasons, I have some WSE 3.0 web services that I cannot upgrade

  • 0

For historical reasons, I have some WSE 3.0 web services that I cannot upgrade to WCF on the server side yet (it is also a substantial amount of work to do so).

These web services are being used for file transfers from client to server, using MTOM encoding. This can also not be changed in the short term, for reasons of compatibility. Secondly, they are being called from both Java and .NET, and therefore need to be cross-platform, hence MTOM.

How it works is that an “upload” WebMethod is called by the client, sending up a chunk of data at a time, since files being transferred could potentially be gigabytes in size.

However, due to not being able to control parts of the stack before the WebMethod is invoked, I cannot control the memory usage patterns of the web service.

The problem I am running into is for file sizes from 50MB or so onwards, performance is absolutely killed because of GC, since it appears that WSE 3.0 buffers each chunk received from the client in a new byte[] array, and by the time we’ve done 50MB we’re spending 20-30% of time doing GC.

I’ve played with various chunk sizes, from 16k to 2MB, with no real great difference in results.

Smaller chunks are killed by the latency involved with round-tripping, and larger chunks just postpone the slowdown until GC kicks in.

Any bright ideas on cutting down on the garbage created by WSE? Can I plug into the pipeline somehow and jury-rig something that has access to the client’s request stream and streams it to the WebMethod?

I’m aware that it is possible to “stream” responses to the client using WSE (albeit very ugly), but this problem is with requests from the client.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T03:50:48+00:00Added an answer on May 15, 2026 at 3:50 am

    You are done. Gigabyte transfer and WSE 3.0 never worked together – you basically NEED streaming in WCF for that.

    You can just try to go 64 bit with the process and load up tons of memory so that the GC is not so much an issue. Upgrade to .NET 4.0 (should be painless mostly) and use the non-blocking GC. Hit the process with 12-30gb memory and you should survive a little more.

    Historically all ASP (.net) stuff is “batched”, first colecting all data then sending it. THis means large items just are not handled too well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In my application I have quite some void-pointers (this is because of historical reasons,
We have some integer arithmetic which for historical reasons has to work the same
I have inherited a Java application (servlets) that runs under Tomcat. For historical reasons,
I have some historical option prices and I'm trying to determine an implied delta.
Scenario: I have a project containgin two C# projects, which for historical reasons must
Any specific reasons would be nice too. As some people have pointed out; Java
There have been a few things in web app's that I don't like. First
I suppose there could be historical reasons for this naming and that other languages
i have a rather difficult mapping problem. EDIT: reformulated descritpion for historical reasons texts
I am developing a JSR-286 compliant portlet based on struts 1.2.9 (for historical reasons

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.