User (Old forums)MemberSeptember 11, 2003 at 1:31 pmPost count: 23064
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)MemberSeptember 11, 2003 at 3:22 pmPost count: 23064
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
If this is still not working and wish to reach me directly, email me at : <a href=”mailto:firstname.lastname@example.org”>email@example.com</a>.
Cheers ! (h)
Imported from legacy forums. Posted by Matt (had 685 views)User (Old forums)MemberOctober 23, 2003 at 12:14 pmPost count: 23064
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.
Imported from legacy forums. Posted by Parkersoft (had 779 views)User (Old forums)MemberOctober 25, 2003 at 1:34 pmPost 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)MemberOctober 26, 2003 at 2:33 amPost count: 23064
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
Call XFTP(LogNo).License(“xxx xxx xx xxx xx”)
LogFiles(LogNo).FTPControlCreated = True
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))
Domain = LogFiles(LogNo).FTPDomain
Port = 0
.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
LogFiles(LogNo).FTPLastNOOP = Now
‘ check local copy dir exists
Call CheckDir(DDFPath & “FTPLocal\” & LogFiles(LogNo).Domain)
FTPConnect = True
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)
I’ll set the ‘Name’ property of each instance to a unique value to see if that makes any difference.
Imported from legacy forums. Posted by Parkersoft (had 959 views)User (Old forums)MemberOctober 26, 2003 at 2:53 pmPost 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)MemberNovember 7, 2003 at 11:05 amPost count: 23064
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,
Imported from legacy forums. Posted by skeeter (had 839 views)User (Old forums)MemberDecember 4, 2003 at 8:50 pmPost 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,
Imported from legacy forums. Posted by Jason (had 427 views)User (Old forums)MemberDecember 5, 2003 at 9:23 amPost count: 23064
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?
Imported from legacy forums. Posted by Martin (had 511 views)User (Old forums)MemberDecember 5, 2003 at 4:43 pmPost 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 :).
Imported from legacy forums. Posted by Jason (had 592 views)User (Old forums)MemberDecember 16, 2003 at 3:15 pmPost count: 23064
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)
- You must be logged in to reply to this topic.