Wap4410n stop transmission wi-fi
hi for all,
Im Michel from brazil,
I have a problem with wap4410n.. every day, the access point in variable time kick all wireless clients (red X in network status) and i need to reboot the equipament to connect again. the equipament do not stop respond in wired network.. i can reboot via web administrator to restart wi-fi connections
total equipaments connected = aprox. 6 notebooks. all kicked in problem moment
max distance : 40 meters
sinal potence = normal - optimal
no-break = yes
others AP´s = no
firmware = atualized. last
channels = i try all channels and the problem persist.
security choose = wap2
frequence of the problem: aprox two times per day
Can we help me?
tks
Michel
John has a pretty interesting observation. I recently reploaced my older WRT54G v1.1 with a V5 router and started having connectivity problems. I had no clue what was going on, my cable modem would constantly drop its signal, my xbox 360 couldn't hold a valid connection and I had all sorts of problems with my OSX boxes. I read this thread recently and decided to replace the v5 with my older router and hmmmm... suddenly my connection issues aren't issues anymore. (BTW I had recently already replaced my airport preferences so that isn't it)
Its only been a couple of days but it appears that my issues are gone. My next step is to replace my v5 firmware with either the Sveasoft firmware or the DD-WRT firmware and reconnect it.
This could be the solution to my problem, not sure what to say about the rest of you....
Cheers,
peter
Similar Messages
-
WAP4410N stops accepting wireless clients
I have two WAP4410N. One of he accesspoints is connected to our wired LAN, called by now AP1. The other accesspoint is connected to the first accesspoint by WDS (Client mode) called now by AP2. I have upgraded both accesspoints to firmware 2.0.4.2. Both accesspoints are set to the same SSID and channel (6) and are set to mixed mode (B/G/N). After I two weeks they started to fail. When I connect to AP1 I don't reveive an IP-address of our DHCP server from our LAN. I'm able to connect to AP1 from our LAN. When I SSH to the box and I do an dmesg command, I see the following messages:
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
I'm still testing these devices and I hope I can use these devices in our production environment,which is not possible with these errors and outages.
I can't connect to AP2 right now. I think the whole wireless interface isn't working anymore, unless I power off/power on the box. But it's hard testing when it works ok for two weeks and then stops.
Message was edited by: Sander CornelissenAfter your advice I did a factory reset of both AP's. From 17 october until today it worked fine. Today it crashed and the connection to the device isn't usable.
In the dmesg, from the SSH console to the AP, I did notice the following text:
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
Going to erase from sector 00000085 to 00000086..
erasing bf7e0000...
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
ath_bstuck_tasklet: stuck beacon; resetting (bmiss count 36)
I have to power off and power on again to make the device work. -
2 different WAP4410N stops responding
Still having issues. I reconnected 4 laptops today on 2 different WAP4410n APs. The user will let me know if they get disconnected. Yesterday I even reflashed the firmward on them. Also in order to reconect to one of the Waps I had to cycle the power.
The laptops are different
One is a Dell Latitude c840 w/ Links wireless card and the other is a IBM t41 i believe.Just checking to see if there has ever been a resolution to this issue. I have several of these units set up and am experiencing this same issue. I start them and they work fine for a few days, then nothing. I use WIFI Analyzer on my phone or tablet and they are just not available. If I login to the web interface and reboot the AP it starts working again. At times I have noticed that on WIFI Analyzer I will see the signal suddenly appear normal for one refresh cycle, then drop to nothing for a while, then suddenly reappear. I have screen shots of this is you think it would help.
-
WAP4410N stops randomly responding
Hi Randy,
We have a situation with 20 4410N's They are connected through a 2960 switch. They runned for about a year with no problems. We use the WiFi system with 10 cisco wireless ip phones, several workstations (5-10) and a few mobile devices.
Three weeks ago we took 10-15 iPads in commission (almost equally divided over the AP's), since then the trouble started. Several accesspoints stop randomly responding a few times a, day. We updated to the latest firmware (2.0.4.2), but that did not solve the problems.
Were using 3 SSID's WPA2 encryption and fixed IP's for the AP's. If there is anything more you need to know please contact me. This is a urgent problem for us! If we can't get a hold on this we have to replace all the AP's by other ones.Hello,
On January 25th Cisco released version 2.0.6.1. I have upgraded several units to this firmware and it has resolved the random not able to connect issue.
Try upgrading to that version, it is availble here:
http://software.cisco.com/download/release.html?mdfid=282414137&catid=278875243&softwareid=282463166&release=2.0.6.1&relind=AVAILABLE&rellifecycle=&reltype=latest
If you still have the issue after upgrading, do a factory reset and manually reconfigure the device.
You also mentioned that you were using iPads. Sometimes Apple's devices have trouble with WPA2 AES, so you might want to try switching the encryption to WPA-Personal (TKIP), or WPA Mixed, so that TKIP is also available. Forget the wireless network on the iPad and then try reconnecting.
Usually the upgrade will resolve the issue, if not try the reset. If you are still having trouble after that call the SBSC at 1.866.606.1866 and we can open a support case for you.
Christopher Ebert
Network Support Engineer - Cisco Small Business Support Center
*Please rate helpful posts* -
WAP4410N stops responding with SRW2024
I have the same problem with my two WAP4410N connected to my Cisco SRW2024 Gigabit switch.
It appears that there would be a time where the PHY's between the WAP and the switch are hung.
The lights on the Gigabit switch are constantly flashing.
It is until I disconnect and reconnect the network cable between the WAP and the Gigabit switch
that the problem is momentarily solved. Then it seems like another high traffic usage of the
WAP will cause the connection to hang. This solutions is totally unacceptable as I am not
willing to open my wiring closet every time to fix this hang. Also I've lost precious data
between my client and server because of this hang!
I don't think the problem is with the Gigabit switch as I have other Gigabit devices connected
to it and I never get them to hang like the WAP.
I saw on the release notes (although the firmware has not been posted) that there is a problem
with the WAP Gigabit PHY. From the release notes, it seems the firmware will have an
option to take down the speed of the WAP Gigabit PHY from 1000BT to 100TX.
This would be a shame if this is the final solution as one main reason for purchasing the
WAP4410N is its Gigabit capability.
Being a networking PHY designer who had also worked on other Cisco products, I'm surprise
that this problem had not been resolved in their qualification and interoperability lab.
They should have been able to identify this problem quickly and provide the right fix.
Cisco please help!Hi,
I was made aware of this issue and the work around of setting copper port seed to 100 meg, just before X-mas.
(please note: the work around will not advertise 1000M options).
I didn't even question, if this would be fixed.
I also have, to coin a expression, have my fingers crossed that the 'fix' will be expedient, but i have no date.
We both should check this community site to see if someone has already posed any extra information regarding this issue.
regards Dave -
WAP4410N stops responding very often
Hi
We found that they stop responding to any clients so they cannot get IP addresses, but we can ping the devices and enter the administration page. The only solution is to reboot the AP. we replaced for a new one one week ago under warranty period, we have also applied the latest firmware Version: 2.0.7.4 . I still find the same issue again today , any solution? as I checked this forum that many people complaints this product. Cisco support, any solution for me?What is the serial number of your unit? Also could you look at the syslogs and attach an copy of them to this post.
Thanks
Eric Moyers
.:|:.:|:. CISCO | Eric Moyers | Cisco Technical Support |
Wireless and Surveillance Subject Matter Expert
Please rate helpful Posts and Let others know when your Question has been answered
You can click my name beside the picture if you need to email me directly -
WAP4410N stops responding with 2.0.0.5
Any news on this? I have the same problem. After a day or so it just stops responding.
I recently bought 3 of these to my office.
Running 2.0.0.5 etc.Same problem here as well. I hope Cisco will offer a solution ASAP! I was thinking to RMA this product before warranty expires.
- Michel -
[SOLVED] systemd times out stopping transmission.service
After a recent update, systemd takes really long to shut transmission down either manually or while the computer is turning off.
Both systemd and transmission were update at the same time so I don't know which one has caused this issue.
I'm pretty sure it is systemd because starting and killing transmission-daemon manually works as usual.
I suffer from this problem on two of my machines, one of which runs a fresh install (today).
Any workarounds?
Last edited by bel3atar (2013-09-26 01:02:22)jjacky wrote:https://bugs.archlinux.org/task/37007 ?
This must be it. There's a patch to fix the issue. -
WAP4410N stops responding on large file transfers
Also experience this issue, latest firmware (7/17/2010 version). Definately related to large file transfers. Or, viewing videos (e.g. youtube) over RDP.
Only power cycle gets responsiveness back. Laptops remain connected, but with "Limited Connectivity".There's a limit of 10MB for a single RTMP message in LCDS, you're probably running into this but you're supposed to get a "TCMessageTooLargeException" when you go over 10MB. I think there might be a bug around bubbling this exception but either way, I think you should try to chop your file in 10MB chunks when using RTMP.
-
Trying to view bank statements. Clicking on month, box is empty with locked padlock appears at top. Bank says my settings may be preventing access. Preference shows no setting to be adjusted. Downloaded newest version of reader, so that's not it. Need help.
I went into Java preferences and got lost. The advanced settings were confusing. Some things were enabled, some disabled. The language was foreign to me. Trying to avoid having to hire help for something that may be simple. Any other ideas? If I could unlock it, maybe that would do it. I appreciate your assistance, but unless I know what I'm doing, I don't dare screw up the settings.
-
Bug? Folders created by transmission is read-only to Windows file sharing
It's a nice thing that transmission is supported in the LenovoEMC version of firmware. The thing is, folders created by this transmission are read-only, which means file can't be added, deleted nor modified from Windows file sharing (They are still be deleted with transmission though, but that's irrelavant).
From my experience, this issue is caused by the value of unmask not properly set up in the settings.json file. This file can be modified when transmission is not running, but I didn't find a way to stop transmission from running / restart itself even after being killed from SSH.
Please help.You have to have root access (which will void your warranty) to modify settings.json, that's why I wish Lenovo can come up with an official solution.
If you don't mind viod the warranty, then after you stop transmission, you can log in as root via putty, then use nano to modify settings.json as mentioned below:
http://forum.nas-central.org/viewtopic.php?f=279&t=7877&sid=30b572be20744201c78d224e3db49c97&start=1... -
Transmission does not keep its configuration after restart
Hi everyone,
I have a problem coming up with gnome's last upgrade.
Since Gnome 3.8 then, transmission 2.77 will not keep its configuration. I've already tried to erase the ~/.config/transmission folder in order to start transmission with a "clean" configuration but its not working.
Does anyone have the same problem ? And more importantly, does anyone have a solution yet ?
Thankschord wrote:
Common solution for configs rewriting prevent :
chattr +i <your-config-file-name>
It blocks any changes on locked file.
If you need to rewrite/edit file, just unlock it with chattr -i, write changes and lock it again.
I don't think that's a good idea, there is probably a valid reason a config file is being overwritten, your solution would disable the actual application from changing its own config file...
I had a similar problem with the transmission daemon,
Basically this is what I have deducted:
Start transmission
It reads config file
Stop transmission
It re-writes the config file with what it first read when it started plus applying changes you may have made via a GUI.
Basically as I said earlier, if you edit transmissions config file while it is running with vim or nano or whatever, those changes will be over written when transmission stops.
The solution is to either change settings from the GUI, or make sure there is no transmission running, then edit the config file and save it. Everything should then work so long as you haven't made a syntax error when editing the config file.
Last edited by jrussell (2013-06-03 22:15:35) -
DO i need some extra hardware interface for receving both Audio and video
hi i m doing e-learning project. i have to capture video from webcam and voice from headphone and send to client.
but my code is working fine for either one at a time.
DO i need some extra hardware interface for receving both Audio and video. im using code AVTransmit and AVReceive found from this site only
After running TX
i give Dsound:// & vfw://0 in Media Locater only sound is received and no vedio
and when i give vfw://0 in Media Locater only live video is transmited.
im using JMF1.1.2e.
if any one know the method to run or cause of it plz reply me soon. i will be very thankfull
transmiter/server side code .first run TX on server
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import javax.media.rtp.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class Tx extends JFrame implements ActionListener, KeyListener,
MouseListener, WindowListener {
Vector targets;
JList list;
JButton startXmit;
JButton rtcp;
JButton update;
JButton expiration;
JButton statistics;
JButton addTarget;
JButton removeTarget;
JTextField tf_remote_address;
JTextField tf_remote_data_port;
JTextField tf_media_file;
JTextField tf_data_port;
TargetListModel listModel;
AVTransmitter avTransmitter;
RTCPViewer rtcpViewer;
JCheckBox cb_loop;
Config config;
public Tx() {
setTitle( "JMF/RTP Transmitter");
config= new Config();
GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
JPanel p= new JPanel();
p.setLayout( gridBagLayout);
JPanel localPanel= createLocalPanel();
gbc= new GridBagConstraints();
gbc.gridx= 0;
gbc.gridy= 0;
gbc.gridwidth= 2;
gbc.anchor= GridBagConstraints.CENTER;
gbc.fill= GridBagConstraints.BOTH;
gbc.insets= new Insets( 10, 5, 0, 0);
((GridBagLayout)p.getLayout()).setConstraints( localPanel, gbc);
p.add( localPanel);
JPanel targetPanel= createTargetPanel();
gbc= new GridBagConstraints();
gbc.gridx= 1;
gbc.gridy= 1;
gbc.weightx= 1.0;
gbc.weighty= 1.0;
gbc.anchor= GridBagConstraints.CENTER;
gbc.fill= GridBagConstraints.BOTH;
gbc.insets= new Insets( 10, 5, 0, 0);
((GridBagLayout)p.getLayout()).setConstraints( targetPanel, gbc);
p.add( targetPanel);
JPanel mediaPanel= createMediaPanel();
gbc= new GridBagConstraints();
gbc.gridx= 1;
gbc.gridy= 2;
gbc.weightx= 1.0;
gbc.weighty= 1.0;
gbc.anchor= GridBagConstraints.CENTER;
gbc.fill= GridBagConstraints.BOTH;
gbc.insets= new Insets( 10, 5, 0, 0);
((GridBagLayout)p.getLayout()).setConstraints( mediaPanel, gbc);
p.add( mediaPanel);
JPanel buttonPanel= new JPanel();
rtcp= new JButton( "RTCP Monitor");
update= new JButton( "Transmission Status");
update.setEnabled( false);
rtcp.addActionListener( this);
update.addActionListener( this);
buttonPanel.add( rtcp);
buttonPanel.add( update);
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 3;
gbc.gridwidth= 2;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( buttonPanel, gbc);
p.add( buttonPanel);
getContentPane().add( p);
list.addMouseListener( this);
addWindowListener( this);
pack();
setVisible( true);
private JPanel createMediaPanel() {
JPanel p= new JPanel();
GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
p.setLayout( gridBagLayout);
JLabel label= new JLabel( "Media Locator:");
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
p.add( label);
tf_media_file= new JTextField( 35);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 0;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( tf_media_file, gbc);
p.add( tf_media_file);
tf_media_file.setText( config.media_locator);
cb_loop= new JCheckBox( "loop");
startXmit= new JButton( "Start Transmission");
startXmit.setEnabled( true);
startXmit.addActionListener( this);
gbc= new GridBagConstraints();
gbc.gridx = 2;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( cb_loop, gbc);
p.add( cb_loop);
cb_loop.setSelected( true);
cb_loop.addActionListener( this);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( startXmit, gbc);
p.add( startXmit);
TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Source");
p.setBorder( titledBorder);
return p;
private JPanel createTargetPanel() {
JPanel p= new JPanel();
GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
p.setLayout( gridBagLayout);
targets= new Vector();
for( int i= 0; i < config.targets.size(); i++) {
targets.addElement( config.targets.elementAt( i));
listModel= new TargetListModel( targets);
list= new JList( listModel);
list.addKeyListener( this);
list.setPrototypeCellValue( "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
JScrollPane scrollPane= new JScrollPane( list,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
gbc= new GridBagConstraints();
gbc.gridx= 0;
gbc.gridy= 0;
gbc.weightx= 1.0;
gbc.weighty= 1.0;
gbc.anchor= GridBagConstraints.CENTER;
gbc.fill= GridBagConstraints.BOTH;
gbc.insets= new Insets( 10, 5, 0, 0);
((GridBagLayout)p.getLayout()).setConstraints( scrollPane, gbc);
p.add( scrollPane);
JPanel p1= new JPanel();
p1.setLayout( gridBagLayout);
JLabel label= new JLabel( "IP Address:");
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
p1.add( label);
tf_remote_address= new JTextField( 15);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_address, gbc);
p1.add( tf_remote_address);
label= new JLabel( "Data Port:");
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p1.getLayout()).setConstraints( label, gbc);
p1.add( label);
tf_remote_data_port= new JTextField( 15);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p1.getLayout()).setConstraints( tf_remote_data_port, gbc);
p1.add( tf_remote_data_port);
JPanel p2= new JPanel();
addTarget= new JButton( "Add Target");
removeTarget= new JButton( "Remove Target");
p2.add( addTarget);
p2.add( removeTarget);
addTarget.addActionListener( this);
removeTarget.addActionListener( this);
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 2;
gbc.weightx = 1.0;
gbc.weighty = 0.0;
gbc.gridwidth= 2;
gbc.anchor = GridBagConstraints.CENTER;
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets( 20,5,0,5);
((GridBagLayout)p1.getLayout()).setConstraints( p2, gbc);
p1.add( p2);
gbc= new GridBagConstraints();
gbc.gridx= 1;
gbc.gridy= 0;
gbc.weightx= 1.0;
gbc.weighty= 1.0;
gbc.anchor= GridBagConstraints.CENTER;
gbc.fill= GridBagConstraints.BOTH;
gbc.insets= new Insets( 10, 5, 0, 0);
((GridBagLayout)p.getLayout()).setConstraints( p1, gbc);
p.add( p1);
TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Targets");
p.setBorder( titledBorder);
return p;
private JPanel createLocalPanel() {
JPanel p= new JPanel();
GridBagLayout gridBagLayout= new GridBagLayout();
GridBagConstraints gbc;
p.setLayout( gridBagLayout);
JLabel label= new JLabel( "IP Address:");
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
p.add( label);
JTextField tf_local_host= new JTextField( 15);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 0;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p.getLayout()).setConstraints( tf_local_host, gbc);
p.add( tf_local_host);
try {
String host= InetAddress.getLocalHost().getHostAddress();
tf_local_host.setText( host);
} catch( UnknownHostException e) {
label= new JLabel( "Data Port:");
gbc= new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.EAST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,0,5);
((GridBagLayout)p.getLayout()).setConstraints( label, gbc);
p.add( label);
tf_data_port= new JTextField( 15);
gbc= new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;
gbc.weightx = 0.0;
gbc.weighty = 0.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.fill = GridBagConstraints.NONE;
gbc.insets = new Insets( 5,5,10,5);
((GridBagLayout)p.getLayout()).setConstraints( tf_data_port, gbc);
p.add( tf_data_port);
tf_data_port.setText( config.local_data_port);
TitledBorder titledBorder= new TitledBorder( new EtchedBorder(), "Local Host");
p.setBorder( titledBorder);
return p;
public void actionPerformed( ActionEvent event) {
Object source= event.getSource();
if( source == addTarget) {
String ip= tf_remote_address.getText().trim();
String port= tf_remote_data_port.getText().trim();
String localPort= tf_data_port.getText().trim();
addTargetToList( localPort, ip, port);
if( avTransmitter != null) {
avTransmitter.addTarget( ip, port);
} else if( source == removeTarget) {
int index= list.getSelectedIndex();
if( index != -1) {
Target target= (Target) targets.elementAt( index);
if( avTransmitter != null) {
avTransmitter.removeTarget( target.ip, target.port);
targets.removeElement( target);
listModel.setData( targets);
} else if( source == startXmit) {
if( startXmit.getLabel().equals( "Start Transmission")) {
int data_port= new Integer( tf_data_port.getText()).intValue();
avTransmitter= new AVTransmitter( this, data_port);
avTransmitter.start( tf_media_file.getText().trim(), targets);
avTransmitter.setLooping( cb_loop.isSelected());
startXmit.setLabel( "Stop Transmission");
} else if( startXmit.getLabel().equals( "Stop Transmission")) {
avTransmitter.stop();
avTransmitter= null;
removeNonBaseTargets();
listModel.setData( targets);
startXmit.setLabel( "Start Transmission");
} else if( source == rtcp) {
if( rtcpViewer == null) {
rtcpViewer= new RTCPViewer();
} else {
rtcpViewer.setVisible( true);
rtcpViewer.toFront();
} else if( source == cb_loop) {
if( avTransmitter != null) {
avTransmitter.setLooping( cb_loop.isSelected());
private void removeNonBaseTargets() {
String localPort= tf_data_port.getText().trim();
for( int i= targets.size(); i > 0;) {
Target target= (Target) targets.elementAt( i - 1);
if( !target.localPort.equals( localPort)) {
targets.removeElement( target);
i--;
public void addTargetToList( String localPort,
String ip, String port) {
ListUpdater listUpdater= new ListUpdater( localPort, ip,
port, listModel, targets);
SwingUtilities.invokeLater( listUpdater);
public void rtcpReport( String report) {
if( rtcpViewer != null) {
rtcpViewer.report( report);
public void windowClosing( WindowEvent event) {
config.local_data_port= tf_data_port.getText().trim();
config.targets= new Vector();
for( int i= 0; i < targets.size(); i++) {
Target target= (Target) targets.elementAt( i);
if( target.localPort.equals( config.local_data_port)) {
config.addTarget( target.ip, target.port);
config.media_locator= tf_media_file.getText().trim();
config.write();
System.exit( 0);
public void windowClosed( WindowEvent event) {
public void windowDeiconified( WindowEvent event) {
public void windowIconified( WindowEvent event) {
public void windowActivated( WindowEvent event) {
public void windowDeactivated( WindowEvent event) {
public void windowOpened( WindowEvent event) {
public void keyPressed( KeyEvent event) {
public void keyReleased( KeyEvent event) {
Object source= event.getSource();
if( source == list) {
int index= list.getSelectedIndex();
public void keyTyped( KeyEvent event) {
public void mousePressed( MouseEvent e) {
public void mouseReleased( MouseEvent e) {
public void mouseEntered( MouseEvent e) {
public void mouseExited( MouseEvent e) {
public void mouseClicked( MouseEvent e) {
Object source= e.getSource();
if( source == list) {
int index= list.getSelectedIndex();
if( index != -1) {
Target target= (Target) targets.elementAt( index);
tf_remote_address.setText( target.ip);
tf_remote_data_port.setText( target.port);
int index= list.locationToIndex( e.getPoint());
public static void main( String[] args) {
new Tx();
class TargetListModel extends AbstractListModel {
private Vector options;
public TargetListModel( Vector options) {
this.options= options;
public int getSize() {
int size;
if( options == null) {
size= 0;
} else {
size= options.size();
return size;
public Object getElementAt( int index) {
String name;
if( index < getSize()) {
Target o= (Target)options.elementAt( index);
name= o.localPort + " ---> " + o.ip + ":" + o.port;
} else {
name= null;
return name;
public void setData( Vector data) {
options= data;
fireContentsChanged( this, 0, data.size());
class ListUpdater implements Runnable {
String localPort, ip, port;
TargetListModel listModel;
Vector targets;
public ListUpdater( String localPort, String ip, String port,
TargetListModel listModel, Vector targets) {
this.localPort= localPort;
this.ip= ip;
this.port= port;
this.listModel= listModel;
this.targets= targets;
public void run() {
Target target= new Target( localPort, ip, port);
if( !targetExists( localPort, ip, port)) {
targets.addElement( target);
listModel.setData( targets);
public boolean targetExists( String localPort, String ip, String port) {
boolean exists= false;
for( int i= 0; i < targets.size(); i++) {
Target target= (Target) targets.elementAt( i);
if( target.localPort.equals( localPort)
&& target.ip.equals( ip)
&& target.port.equals( port)) {
exists= true;
break;
return exists;
>>>>>>>>>>>>>>>>>
import java.awt.*;
import java.io.*;
import java.net.InetAddress;
import java.util.*;
import javax.media.*;
import javax.media.protocol.*;
import javax.media.format.*;
import javax.media.control.TrackControl;
import javax.media.control.QualityControl;
import javax.media.rtp.*;
import javax.media.rtp.event.*;
import javax.media.rtp.rtcp.*;
public class AVTransmitter implements ReceiveStreamListener, RemoteListener,
ControllerListener {
// Input MediaLocator
// Can be a file or http or capture source
private MediaLocator locator;
private String ipAddress;
private int portBase;
private Processor processor = null;
private RTPManager rtpMgrs[];
private int localPorts[];
private DataSource dataOutput = null;
private int local_data_port;
private Tx tx;
public AVTransmitter( Tx tx, int data_port) {
this.tx= tx;
local_data_port= data_port;
* Starts the transmission. Returns null if transmission started ok.
* Otherwise it returns a string with the reason why the setup failed.
public synchronized String start( String filename, Vector targets) {
String result;
locator= new MediaLocator( filename);
// Create a processor for the specified media locator
// and program it to output JPEG/RTP
result = createProcessor();
if (result != null) {
return result;
// Create an RTP session to transmit the output of the
// processor to the specified IP address and port no.
result = createTransmitter( targets);
if (result != null) {
processor.close();
processor = null;
return result;
// Start the transmission
processor.start();
return null;
* Use the RTPManager API to create sessions for each media
* track of the processor.
private String createTransmitter( Vector targets) {
// Cheated. Should have checked the type.
PushBufferDataSource pbds = (PushBufferDataSource)dataOutput;
PushBufferStream pbss[] = pbds.getStreams();
rtpMgrs = new RTPManager[pbss.length];
localPorts = new int[ pbss.length];
SessionAddress localAddr, destAddr;
InetAddress ipAddr;
SendStream sendStream;
int port;
SourceDescription srcDesList[];
for (int i = 0; i < pbss.length; i++) {
// for (int i = 0; i < 1; i++) {
try {
rtpMgrs[i] = RTPManager.newInstance();
port = local_data_port + 2*i;
localPorts[ i]= port;
localAddr = new SessionAddress( InetAddress.getLocalHost(),
port);
rtpMgrs.initialize( localAddr);
rtpMgrs[i].addReceiveStreamListener(this);
rtpMgrs[i].addRemoteListener(this);
for( int k= 0; k < targets.size(); k++) {
Target target= (Target) targets.elementAt( k);
int targetPort= new Integer( target.port).intValue();
addTarget( localPorts[ i], rtpMgrs[ i], target.ip, targetPort + 2*i);
sendStream = rtpMgrs[i].createSendStream(dataOutput, i);
sendStream.start();
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
return null;
public void addTarget( String ip, String port) {
for (int i= 0; i < rtpMgrs.length; i++) {
int targetPort= new Integer( port).intValue();
addTarget( localPorts[ i], rtpMgrs[ i], ip, targetPort + 2*i);
public void addTarget( int localPort, RTPManager mgr, String ip, int port) {
try {
SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
new Integer( port).intValue());
mgr.addTarget( addr);
tx.addTargetToList( localPort + "", ip, port + "");
} catch( Exception e) {
e.printStackTrace();
public void removeTarget( String ip, String port) {
try {
SessionAddress addr= new SessionAddress( InetAddress.getByName( ip),
new Integer( port).intValue());
for (int i= 0; i < rtpMgrs.length; i++) {
rtpMgrs[ i].removeTarget( addr, "target removed from transmitter.");
} catch( Exception e) {
e.printStackTrace();
boolean looping= true;
public void controllerUpdate( ControllerEvent ce) {
System.out.println( ce);
if( ce instanceof DurationUpdateEvent) {
Time duration= ((DurationUpdateEvent) ce).getDuration();
System.out.println( "duration: " + duration.getSeconds());
} else if( ce instanceof EndOfMediaEvent) {
System.out.println( "END OF MEDIA - looping=" + looping);
if( looping) {
processor.setMediaTime( new Time( 0));
processor.start();
public void setLooping( boolean flag) {
looping= flag;
public void update( ReceiveStreamEvent event) {
String timestamp= getTimestamp();
StringBuffer sb= new StringBuffer();
if( event instanceof InactiveReceiveStreamEvent) {
sb.append( timestamp + " Inactive Receive Stream");
} else if( event instanceof ByeEvent) {
sb.append( timestamp + " Bye");
} else {
System.out.println( "ReceiveStreamEvent: "+ event);
tx.rtcpReport( sb.toString());
public void update( RemoteEvent event) {
String timestamp= getTimestamp();
if( event instanceof ReceiverReportEvent) {
ReceiverReport rr= ((ReceiverReportEvent) event).getReport();
StringBuffer sb= new StringBuffer();
sb.append( timestamp + " RR");
if( rr != null) {
Participant participant= rr.getParticipant();
if( participant != null) {
sb.append( " from " + participant.getCNAME());
sb.append( " ssrc=" + rr.getSSRC());
} else {
sb.append( " ssrc=" + rr.getSSRC());
tx.rtcpReport( sb.toString());
} else {
System.out.println( "RemoteEvent: " + event);
private String getTimestamp() {
String timestamp;
Calendar calendar= Calendar.getInstance();
int hour= calendar.get( Calendar.HOUR_OF_DAY);
String hourStr= formatTime( hour);
int minute= calendar.get( Calendar.MINUTE);
String minuteStr= formatTime( minute);
int second= calendar.get( Calendar.SECOND);
String secondStr= formatTime( second);
timestamp= hourStr + ":" + minuteStr + ":" + secondStr;
return timestamp;
private String formatTime( int time) {
String timeStr;
if( time < 10) {
timeStr= "0" + time;
} else {
timeStr= "" + time;
return timeStr;
* Stops the transmission if already started
public void stop() {
synchronized (this) {
if (processor != null) {
processor.stop();
processor.close();
processor = null;
for (int i= 0; i < rtpMgrs.length; i++) {
rtpMgrs[ i].removeTargets( "Session ended.");
rtpMgrs[ i].dispose();
public String createProcessor() {
if (locator == null) {
return "Locator is null";
DataSource ds;
DataSource clone;
try {
ds = javax.media.Manager.createDataSource(locator);
} catch (Exception e) {
return "Couldn't create DataSource";
// Try to create a processor to handle the input media locator
try {
processor = javax.media.Manager.createProcessor(ds);
processor.addControllerListener( this);
} catch (NoProcessorException npe) {
return "Couldn't create processor";
} catch (IOException ioe) {
return "IOException creating processor";
// Wait for it to configure
boolean result = waitForState(processor, Processor.Configured);
if (result == false)
return "Couldn't configure processor";
// Get the tracks from the processor
TrackControl [] tracks = processor.getTrackControls();
// Do we have atleast one track?
if (tracks == null || tracks.length < 1)
return "Couldn't find tracks in processor";
// Set the output content descriptor to RAW_RTP
// This will limit the supported formats reported from
// Track.getSupportedFormats to only valid RTP formats.
ContentDescriptor cd = new ContentDescriptor(ContentDescriptor.RAW_RTP);
processor.setContentDescriptor(cd);
Format supported[];
Format chosen;
boolean atLeastOneTrack = false;
// Program the tracks.
for (int i = 0; i < tracks.length; i++) {
Format format = tracks[i].getFormat();
if (tracks[i].isEnabled()) {
supported = tracks[i].getSupportedFormats();
// We've set the output content to the RAW_RTP.
// So all the supported formats should work with RTP.
// We'll just pick the first one.
if (supported.length > 0) {
if (supported[0] instanceof VideoFormat) {
// For video formats, we should double check the
// sizes since not all formats work in all sizes.
chosen = checkForVideoSizes(tracks[i].getFormat(),
supported[0]);
} else
chosen = supported[0];
tracks[i].setFormat(chosen);
System.err.println("Track " + i + " is set to transmit as:");
System.err.println(" " + chosen);
atLeastOneTrack = true;
} else
tracks[i].setEnabled(false);
} else
tracks[i].setEnabled(false);
if (!atLeastOneTrack)
return "Couldn't set any of the tracks to a valid RTP format";
// Realize the processor. This will internally create a flow
// graph and attempt to create an output datasource for JPEG/RTP
// audio frames.
result = waitForState(processor, Controller.Realized);
if (result == false)
return "Couldn't realize processor";
// Set the JPEG quality to .5.
setJPEGQuality(processor, 0.5f);
// Get the output data source of the processor
dataOutput = processor.getDataOutput();
return null;
static SessionAddress destAddr1, destAddr2;
* For JPEG and H263, we know that they only work for particular
* sizes. So we'll perform extra checking here to make sure they
* are of the right sizes.
Format checkForVideoSizes(Format original, Format supported) {
int width, height;
Dimension size = ((VideoFormat)original).getSize();
Format jpegFmt = new Format(VideoFormat.JPEG_RTP);
Format h263Fmt = new Format(VideoFormat.H263_RTP);
if (supported.matches(jpegFmt)) {
// For JPEG, make sure width and height are divisible by 8.
width = (size.width % 8 == 0 ? size.width :
(int)(size.width / 8) * 8);
height = (size.height % 8 == 0 ? size.height :
(int)(size.height / 8) * 8);
} else if (supported.matches(h263Fmt)) {
// For H.263, we only support some specific sizes.
if (size.width < 128) {
width = 128;
height = 96;
} else if (size.width < 176) {
width = 176;
height = 144;
} else {
width = 352;
height = 288;
} else {
// We don't know this particular format. We'll just
// leave it alone then.
return supported;
return (new VideoFormat(null,
new Dimension(width, height),
Format.NOT_SPECIFIED,
null,
Format.NOT_SPECIFIED)).intersects(supported);
* Setting the encoding quality to the specified value on the JPEG encoder.
* 0.5 is a good default.
void setJPEGQuality(Player p, float val) {
Control cs[] = p.getControls();
QualityControl qc = null;
VideoFormat jpegFmt = new VideoFormat(VideoFormat.JPEG);
// Loop through the controls to find the Quality control for
// the JPEG encoder.
for (int i = 0; i < cs.length; i++) {
if (cs[i] instanceof QualityControl &&
cs[i] instanceof Owned) {
Object owner = ((Owned)cs[i]).getOwner();
// Check to see if the owner is a Codec.
// Then check for the output format.
if (owner instanceof Codec) {
Format fmts[] = ((Codec)owner).getSupportedOutputFormats(null);
for (int j = 0; j < fmts.length; j++) {
if (fmts[j].matches(jpegFmt)) {
qc = (QualityControl)cs[i];
qc.setQuality(val);
System.err.println("- Setting quality to " +
val + " on " + qc);
break;
if (qc != null)
break;
* Convenience methods to handle processor's state changes.
private Integer stateLock = new Integer(0);
private boolean failed = false;
Integer getStateLock() {
return stateLock;
void setFailed() {
failed = true;
private synchronized boolean waitForState(Processor p, int state) {
p.addControllerListener(new StateListener());
failed = false;
// Call the required method on the processor
if (state == Processor.Configured) {
p.configure();
} else if (state == Processor.Realized) {
p.realize();
// Wait until we get an event that confirms the
// success of the method, or a failure event.
// See StateListener inner class
while (p.getState() < state && !failed) {
synchronized (getStateLock()) {
try {
getStateLock().wait();
} catch (InterruptedException ie) {
return false;
if (failed)
return false;
else
return true;
* Inner Classes
class StateListener implements ControllerListener {
public void controllerUpdate(ControllerEvent ce) {
// If there was an error during configure or
// realizI do this all the time, I put my MBP to a 60 inch Sharp. If you have the video working do the simple thing first. Check to make sure your sound is on your TV and Mac. Then if that doesn't work go to System Prefrences and under sound go to a tab called Output and see if your TV is listed and if it is change it to that setting
Hope It Works -
File archiving in application server ?
Hi Experts,
How to a archive file in application server to another folder? Is there any function module used for that?.
ThanksHi Dan
For archiving, we can use FM: <b>EPS_DELETE_FILE</b> for archiving a file.
Below code can help you understand for moving a file:
[code]FUNCTION y_copy_file_within_appli_serv.
""Local interface:
*" IMPORTING
*" VALUE(RFC_DESTINATION) LIKE RFCDES-RFCDEST
*" VALUE(LOCAL_FILE) LIKE EPSF-EPSFILNAM
*" VALUE(LOCAL_DIRECTORY) LIKE EPSF-EPSDIRNAM DEFAULT SPACE
*" VALUE(REMOTE_FILE) LIKE EPSF-EPSFILNAM DEFAULT SPACE
*" VALUE(REMOTE_DIRECTORY) LIKE EPSF-EPSDIRNAM DEFAULT SPACE
*" VALUE(OVERWRITE_MODE) LIKE EPSF-EPSOVRWRI DEFAULT SPACE
*" VALUE(TEXT_MODE) LIKE EPSF-EPSTXTMOD DEFAULT SPACE
*" VALUE(TRANSMISSION_MONITOR) LIKE EPSF-EPSTRAMON DEFAULT 'X'
*" VALUE(RECORDS_PER_TRANSFER) LIKE EPSF-EPSRECTRA DEFAULT 10
*" VALUE(REQUESTED_FILE_SIZE) LIKE EPSF-EPSFILSIZ DEFAULT 0
*" VALUE(MONITOR_TITLE) LIKE EPSF-EPSTEXT OPTIONAL
*" VALUE(MONITOR_TEXT1) LIKE EPSF-EPSTEXT OPTIONAL
*" VALUE(MONITOR_TEXT2) LIKE EPSF-EPSTEXT OPTIONAL
*" VALUE(PROGRESS_TEXT) LIKE EPSF-EPSTEXT OPTIONAL
*" VALUE(OBJECT_NAME) LIKE EPSF-EPSFILNAM OPTIONAL
*" EXPORTING
*" VALUE(LOCAL_DIRECTORY) LIKE EPSF-EPSDIRNAM
*" VALUE(LOCAL_PATH) LIKE EPSF-EPSPATH
*" VALUE(REMOTE_FILE) LIKE EPSF-EPSFILNAM
*" VALUE(REMOTE_DIRECTORY) LIKE EPSF-EPSDIRNAM
*" VALUE(REMOTE_PATH) LIKE EPSF-EPSPATH
*" VALUE(FILE_SIZE) LIKE EPSF-EPSFILSIZ
*" VALUE(LOCAL_SYSTEM_INFO) LIKE EPSFTPSI STRUCTURE EPSFTPSI
*" VALUE(REMOTE_SYSTEM_INFO) LIKE EPSFTPSI STRUCTURE EPSFTPSI
*" EXCEPTIONS
*" OPEN_INPUT_FILE_FAILED
*" OPEN_OUTPUT_FILE_FAILED
*" READ_BLOCK_FAILED
*" WRITE_BLOCK_FAILED
*" CLOSE_OUTPUT_FILE_FAILED
*" INVALID_FILE_SIZE
*" STOPPED_BY_USER
*" INVALID_INPUT_FILE_SIZE
*" RESTART_FAILED
*" CONNECTION_FAILED
*" INVALID_VERSION
DATA: BEGIN OF eps_buffer OCCURS 10.
INCLUDE STRUCTURE tbl8000.
DATA: END OF eps_buffer.
DATA: BEGIN OF eps_txtbuf OCCURS 0.
INCLUDE STRUCTURE epsteco.
DATA: END OF eps_txtbuf.
DATA: ls_save_moni LIKE g$moni.
DATA: lv_local_file_size LIKE epsf-epsfilsiz,
lv_remote_file_size LIKE epsf-epsfilsiz,
lv_block_size LIKE epsf-epsfilsiz,
lv_number_of_records LIKE epsf-epsrectra,
lv_last_record_length LIKE epsf-epsreclen,
lv_max_record_length LIKE epsf-epsreclen,
lv_end_of_file LIKE epsf-epsflag,
lv_low_rc LIKE sy-subrc,
lv_rfc_message LIKE sy-msgv1,
lv_restart_flag LIKE epsf-epsflag,
lv_pattern LIKE tbl8000-line,
lv_records_to_skip LIKE epsf-epsrectra,
lv_skiped_size LIKE epsf-epsfilsiz.
check parameters (only if not started from EPS_ftp_mput)
IF transmission_monitor <> gc_mon_flag_m.
PERFORM get_ftp_system_info " get ftp system info
USING
rfc_destination
CHANGING
local_system_info
remote_system_info.
PERFORM check_ftp_version " check ftp version
USING
text_mode
remote_system_info.
PERFORM check_overwrite_mode " check OVERWRITE_MODE
USING
text_mode
CHANGING
overwrite_mode.
PERFORM check_records_per_transfer " check RECORDS_PER_TRANSFER
USING
text_mode
CHANGING
records_per_transfer.
ENDIF.
determine block_size [byte] (binary mode only)
IF text_mode <> 'X'.
*>>> Begin of modification for change log reference UnicodeC <<<
DESCRIBE FIELD eps_buffer-line LENGTH lv_max_record_length.
DESCRIBE FIELD eps_buffer-line LENGTH lv_max_record_length IN
BYTE MODE.
*<<< End of modification for change log reference UnicodeC >>>
lv_block_size = lv_max_record_length * records_per_transfer.
ENDIF.
open local file for input
CALL FUNCTION 'EPS_OPEN_INPUT_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
text_mode = text_mode
IMPORTING
dir_name = local_directory
file_path = local_path
file_size = lv_local_file_size
EXCEPTIONS
invalid_eps_subdir = 11
sapgparam_failed = 12
build_directory_failed = 13
no_authorization = 14
build_path_failed = 15
open_failed = 16
read_directory_failed = 17
read_attributes_failed = 18.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
CALL FUNCTION 'EPS_CLOSE_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
EXCEPTIONS
OTHERS = 99.
MESSAGE e001 WITH lv_low_rc local_file local_directory
space " rfc message
RAISING open_input_file_failed.
ENDIF.
check file size
IF requested_file_size <> 0 AND
requested_file_size <> lv_local_file_size.
CALL FUNCTION 'EPS_CLOSE_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
EXCEPTIONS
OTHERS = 99.
lv_low_rc = 0.
MESSAGE e008 WITH lv_low_rc local_file
requested_file_size lv_local_file_size
RAISING invalid_input_file_size.
ENDIF.
open remote file for output
IF remote_file = space. " no remote file specified
remote_file = local_file. " -> remote file = local file
ENDIF.
IF text_mode = 'X' AND " no restart in textmode
overwrite_mode = 'R'.
overwrite_mode = 'S'.
ENDIF.
CALL FUNCTION 'EPS_OPEN_OUTPUT_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
file_size_request = lv_local_file_size
overwrite_mode = overwrite_mode
text_mode = text_mode
IMPORTING
dir_name = remote_directory
file_path = remote_path
restart_flag = lv_restart_flag
EXCEPTIONS
system_failure = 03 MESSAGE lv_rfc_message
communication_failure = 04 MESSAGE lv_rfc_message
invalid_eps_subdir = 11
sapgparam_failed = 12
build_directory_failed = 13
no_authorization = 14
build_path_failed = 15
open_failed = 16
file_already_exists = 19.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
CALL FUNCTION 'EPS_CLOSE_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
EXCEPTIONS
OTHERS = 99.
CALL FUNCTION 'EPS_CLOSE_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
EXCEPTIONS
OTHERS = 99.
MESSAGE e002 WITH lv_low_rc remote_file remote_directory
lv_rfc_message
RAISING open_output_file_failed.
ENDIF.
restart file transfer
IF lv_restart_flag = 'X'.
ls_save_moni = g$moni. " save monitor data
CALL FUNCTION 'EPS_SEEK_OUTPUT_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
records_per_transfer = records_per_transfer
object_name = object_name
IMPORTING
pattern = lv_pattern
records_to_skip = lv_records_to_skip
EXCEPTIONS
system_failure = 03 MESSAGE lv_rfc_message
communication_failure = 04 MESSAGE lv_rfc_message
invalid_eps_subdir = 11
sapgparam_failed = 12
build_directory_failed = 13
no_authorization = 14
build_path_failed = 15
open_failed = 16
read_directory_failed = 17
read_attributes_failed = 18
read_failure = 20
write_failure = 21
OTHERS = 99.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
CALL FUNCTION 'EPS_CLOSE_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
EXCEPTIONS
OTHERS = 99.
g$moni = ls_save_moni. " restore monitor data
MESSAGE e009 WITH lv_low_rc remote_file remote_directory
lv_rfc_message
RAISING restart_failed.
ENDIF.
CALL FUNCTION 'EPS_SEEK_INPUT_FILE'
EXPORTING
pattern = lv_pattern
records_to_skip = lv_records_to_skip
file_path = local_path
records_per_transfer = records_per_transfer
EXCEPTIONS
read_failure = 20
write_failure = 21
end_of_file = 22
pattern_not_found = 23
OTHERS = 99.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
CALL FUNCTION 'EPS_CLOSE_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
EXCEPTIONS
OTHERS = 99.
CALL FUNCTION 'EPS_CLOSE_FILE'
EXPORTING
file_name = local_file
dir_name = local_directory
EXCEPTIONS
OTHERS = 99.
CALL FUNCTION 'EPS_DELETE_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
EXCEPTIONS
OTHERS = 99.
g$moni = ls_save_moni. " restore monitor data
MESSAGE e009 WITH lv_low_rc remote_file remote_directory
space " rfc message
RAISING restart_failed.
ENDIF.
lv_skiped_size = lv_records_to_skip * lv_max_record_length.
g$moni = ls_save_moni. " restore monitor data
ENDIF.
start transmission monitor
IF transmission_monitor <> 'M'.
PERFORM monitor_open
USING transmission_monitor
monitor_title.
PERFORM monitor_set_values
USING gc_ftp_put
progress_text
monitor_text1
monitor_text2
rfc_destination
local_file
0 " total files
0 " current file
0 " maxval gauge 1
lv_local_file_size " maxval gauge 2
0 " skiped size gauge 1
lv_skiped_size. " skiped size gauge 2
ELSE.
PERFORM monitor_update_values
USING 0 " increment
0 " skiped size gauge 1
lv_skiped_size. " skiped size gauge 2
ENDIF.
file transfer ------------------------------------------ begin -------
CLEAR lv_end_of_file.
WHILE lv_end_of_file <> 'X'.
read block from input file
IF text_mode = 'X'.
REFRESH eps_txtbuf.
CALL FUNCTION 'EPS_READ_TEXT_BLOCK'
EXPORTING
file_path = local_path
records_per_transfer = records_per_transfer
IMPORTING
end_of_file = lv_end_of_file
TABLES
eps_buffer = eps_txtbuf
EXCEPTIONS
read_failure = 20.
ELSE.
REFRESH eps_buffer.
CALL FUNCTION 'EPS_READ_BLOCK'
EXPORTING
file_path = local_path
records_per_transfer = records_per_transfer
IMPORTING
number_of_records = lv_number_of_records
last_record_length = lv_last_record_length
end_of_file = lv_end_of_file
TABLES
eps_buffer = eps_buffer
EXCEPTIONS
read_failure = 20.
ENDIF.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
IF transmission_monitor = 'X'. " stop monitor
PERFORM monitor_stop.
ENDIF.
MESSAGE e003 WITH lv_low_rc local_path space
RAISING read_block_failed.
ENDIF.
write block into output file
IF text_mode = 'X'.
CALL FUNCTION 'EPS_WRITE_TEXT_BLOCK'
DESTINATION rfc_destination
EXPORTING
file_path = remote_path
IMPORTING
transfered_bytes = lv_block_size
TABLES
eps_buffer = eps_txtbuf
EXCEPTIONS
system_failure = 03 MESSAGE lv_rfc_message
communication_failure = 04 MESSAGE lv_rfc_message
write_failure = 21.
ELSE.
CALL FUNCTION 'EPS_WRITE_BLOCK'
DESTINATION rfc_destination
EXPORTING
file_path = remote_path
number_of_records = lv_number_of_records
last_record_length = lv_last_record_length
TABLES
eps_buffer = eps_buffer
EXCEPTIONS
system_failure = 03 MESSAGE lv_rfc_message
communication_failure = 04 MESSAGE lv_rfc_message
write_failure = 21.
ENDIF.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
IF transmission_monitor = 'X'. " stop monitor
PERFORM monitor_stop.
ENDIF.
MESSAGE e004 WITH lv_low_rc remote_path lv_rfc_message
RAISING write_block_failed.
ENDIF.
update transmission monitor
PERFORM monitor_update_values
USING lv_block_size " increment
0 " skiped size gauge 1
0. " skiped size gauge 2
IF g$moni-cancel = 'X'. " stop transmission
MESSAGE e007 RAISING stopped_by_user.
ENDIF.
ENDWHILE.
file transfer ------------------------------------------ end ---------
stop transmission monitor
IF transmission_monitor = 'X'.
PERFORM monitor_stop.
ENDIF.
close output file and get size
CALL FUNCTION 'EPS_CLOSE_FILE'
DESTINATION rfc_destination
EXPORTING
file_name = remote_file
dir_name = remote_directory
IMPORTING
file_size = lv_remote_file_size
EXCEPTIONS
system_failure = 03 MESSAGE lv_rfc_message
communication_failure = 04 MESSAGE lv_rfc_message
build_path_failed = 15
read_directory_failed = 17
read_attributes_failed = 18.
lv_low_rc = sy-subrc.
IF sy-subrc <> 0.
MESSAGE e005 WITH lv_low_rc remote_file remote_directory
lv_rfc_message
RAISING close_output_file_failed.
ENDIF.
compare size of local and remote file (binary mode only)
IF text_mode <> 'X'.
IF lv_local_file_size <> lv_remote_file_size.
lv_low_rc = 0.
MESSAGE e006 WITH lv_low_rc local_file lv_local_file_size
RAISING invalid_file_size.
ENDIF.
ENDIF.
file_size = lv_local_file_size.
ENDFUNCTION.[/code]
Regards
Eswar -
Cant send my photos by email from computor.
when I want to send my photos silverlight says it has a problem & shuts down/stops transmission. Either this is changed or firefox goes!!!
There are a couple options you could try under these articles
[[using the silverlight plugin with firefox]]
[[plugin crash reports]]
and a thread of a similar issue that you may find useful here:
https://support.mozilla.org/en-US/questions/908363?s=silverlight&r=8&e=sph&as=s
Maybe you are looking for
-
Can't upload a file to correct server using WLST
I'm testing a Web application on my PC, and while it does connect to a WebLogic Server instance on a development server, it deploys an EAR/WAR file I select to the 'servers/AdminServer/upload' subdirectory of my local WebLogic Server instance, not to
-
I have a problem with skype : Today, skype crashed and tried to update then an error appeard : Skype Failed; code 1603 I tried to uninstall skype, but it was already gone, so, it uninstalled by itself. I then tried to install it agian but the error k
-
itunes freezes up with no error message. Previous to this, I downloaded ios6 for iphone and that failed as well. The iphone is frozen too. Any ideas?
-
Database Error, then getting hung up on recovery...
I keep getting the database error (new or unknown files). Then I select the recover option and it gets hung up and continually sticks leaving me only with the option of FORCE quit. Any ideas how to get past this? I can't even restore from Vault as th
-
Install of NI Developer Suite 2010 hangs at inserting DVD 2
I am trying to install NI Developer suite 2010 DS2 on my home PC, upgrading from 8.6. When it comes to the point where I need to insert the DVD #2, it hangs. Wont let me rescan drive, cancel or close the window. Only way out I've found is a restar