Home Forums ActiveX components Xceed FTP for ActiveX Using Background Processing

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • User (Old forums)
    Member
    Post count: 23064
    #42604 |

    I am wondering if anyone has used background processing much. I have an app that I have optimized using background processing and that part is working well. The part that is not is when shutting down the app something is not terminating and the app cannot close, it just hangs. I am using VB6 on an old win 98 box, (my client is insistent on these restrictions). Any thoughts anyone?

    Maybe this is why there is very little documentation on using background processing….

    Imported from legacy forums. Posted by skeeter (had 9020 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi skeeter,

    Would you be able to visit our Upate Center http://www.xceedsoft.com/download/updates.htm) and make sure you have the latest version of the XceedFTP? Since 1.1.111 many issues with the library have been resolved. Furthermore, upon closing the application it would be a good idea to make sure you are no longer connected on the server, the proper way to do this is by setting the Abort property to true and by calling the disconnect method:

    XceedFtp1.Abort = true

    and

    XceeFtp1.Disconnect

    If this is still not working and wish to reach me directly, email me at : <a href=”mailto:matt@xceedsoft.com”>matt@xceedsoft.com</a>.

    Cheers ! (h)

    Imported from legacy forums. Posted by Matt (had 685 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi,

    I am having the same problem. I am using 1.1.116

    I am using VB6.. I am using the FTP control on a form.. If the FTP control is logged in and the user closes the app the form unload does a http://FTP.Abort = True and then a Disconnect.

    However the app just hangs.. or closes but still shows in the Windows task manager.

    The app closes perfectly if the FTP control is not connected.

    Any comments…

    Imported from legacy forums. Posted by Parkersoft (had 779 views)

    User (Old forums)
    Member
    Post count: 23064

    Are you creating more than one instance of the form? In order to workaround the problem you are describing I had to not use background processing on any form that I create more than one instance of. This defeats the whole purpose of OO programming. I am guessing that this problem is caused by the Xceed Library getting confused when more than one instance is created – my theory is that the name of the control is used to identify each instance and not a unique instance id.

    I have been in discussion with Matt via email and he is not up to speed with this as yet but I suspect he will be soon.

    It will be nice if they can fix it.

    Imported from legacy forums. Posted by skeeter (had 628 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi,

    Yes.. I am using a control array.. I dynamically load controls as my app needs them.. Here is the code:

    Function FTPConnect(ByVal LogNo As Integer) As Boolean
    Dim Domain As String
    Dim Port As Integer
    Dim Dot As Integer

    On Error GoTo ftpErr
    If LogFiles(LogNo).FTPControlCreated = False Then
    Load XFTP(LogNo)
    Call XFTP(LogNo).License(“xxx xxx xx xxx xx”)
    LogFiles(LogNo).FTPControlCreated = True
    End If

    With XFTP(LogNo)
    If .CurrentState = fstNotConnected Then
    Dot = InStr(1, LogFiles(LogNo).FTPDomain, “:”)
    If Dot > 0 Then
    Domain = Mid$(LogFiles(LogNo).FTPDomain, 1, Dot – 1)
    Port = Val(Mid$(LogFiles(LogNo).FTPDomain, Dot + 1))
    Else
    Domain = LogFiles(LogNo).FTPDomain
    Port = 0
    End If
    .PassiveMode = LogFiles(LogNo).FTPPassive
    .ServerAddress = Domain
    If Port > 0 Then .ServerPort = Port Else .ServerPort = 21
    .UserName = LogFiles(LogNo).FTPUserName
    .Password = LogFiles(LogNo).FTPPassword
    .RepresentationType = frtBinary
    .Connect
    LogFiles(LogNo).FTPLastNOOP = Now
    ‘ check local copy dir exists
    Call CheckDir(DDFPath & “FTPLocal\” & LogFiles(LogNo).Domain)
    End If
    End With

    FTPConnect = True
    Exit Function

    ftpErr:
    If XFTP(LogNo).CurrentState <> fstNotConnected Then Call FTPAbortConnection(LogNo)
    LogFiles(LogNo).LastErrorCondition = “Error connecting to FTP Site: ” & err.Description
    Call frmLog.AddLogEvent(“FTP Connect:” & err.Description, 1, LogNo)
    End Function

    I’ll set the ‘Name’ property of each instance to a unique value to see if that makes any difference.

    Regards
    Steve

    Imported from legacy forums. Posted by Parkersoft (had 959 views)

    User (Old forums)
    Member
    Post count: 23064

    It’s not related to the Name property. I’m also investiguating this issue with Matt. We <U>may</U> already have a fix, as I did correct a leak problem with the background processing thread shutting down before the sockets are released, but we cannot confirm yet that this will also correct this issue. We’ll keep you informed thsi week.

    Imported from legacy forums. Posted by Martin (had 550 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi everyone,
    what did you guys figure out about the background processing? Matt: was I wrong for assuming that I could have concurrent ftp operations by using more than one ftp control in background operation?

    I have not heard anything for awhile… sure is quiet around here.

    Thanks for any replys,

    Skeeter

    Imported from legacy forums. Posted by skeeter (had 839 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi, I have been looking for a solid FTP component with background capabilities. I too am interested in how this is working and user’s experiences.

    Is this truly asynchronous? I tried one FTP component that claimed to be asynchronous until I showed them that it was taking 250ms to perform their login method. Didn’t hear from them after that.

    My application does some real-time image manipulation with web cams and other image sources and has FTP push capability. I can’t have it pausing a live image for 250ms every couple of seconds 🙁

    I was happy with the WinInet control until some of my customers starting having issues that turned out to be because their ISP didn’t allow active FTP transfers. I see that this control does Passive (is Active an option? I’ll look through the docs) transfers so this is a plus!

    Thanks for any user replies,
    -jason.

    Imported from legacy forums. Posted by Jason (had 427 views)

    User (Old forums)
    Member
    Post count: 23064

    Hello Jason.

    I never timed how much milliseconds it took to call a method in background processing mode, but it sums up to checking parameters and current state, pushing params in a structure, and queuing an APC on a different thread. Though I would be very surprised if we weren’t doing better than 250 ms, you should still expect a few milliseconds!

    Being faced with your task, I would personnally spawn my own thread dedicated to FTP, put this thread in a lower priority, and work with an instance of XceedFtp in sych mode. I would manage my own queuing on that thread, and be able to accomplish many other operations not necessarily related to FTP. If you use the background processing mode, you don’t have control on the thread’s priority, affinity (appartments), etc.

    Little survey for all readers: I’m about to implement asynch operations on the .NET version. What are the reasons you are using the background processing? Application responsiveness? Time-critical applications? Using SendMemoryFile and SendMemoryFileData? Other?

    Thank you!

    Imported from legacy forums. Posted by Martin (had 511 views)

    User (Old forums)
    Member
    Post count: 23064

    My reason was lack of multi-threading (without using activex exe servers) in VB6 — not really applicable to .NET. The responsiveness you describe sounds sufficient. I am trying to get some customers lined up to test a version with your component — that 20-day trial period is a crunch :).

    -jason.

    Imported from legacy forums. Posted by Jason (had 592 views)

    User (Old forums)
    Member
    Post count: 23064

    Hi Jason
    XCeed components have been very solid for me. The documentation is very good – better than most. The Tech Support is very good as well. They have been quick to respond in most cases, they have even called me on the phone.

    The components have all worked very solidly and performed well. I recommend them highly.
    If you need timed performance you can use the trial versions. I would download the trial version then get the latest FTP component so that you have the latest fixes in it.

    Imported from legacy forums. Posted by skeeter (had 10456 views)

Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.